【发布时间】:2020-04-10 10:29:21
【问题描述】:
我是 Python 和数据科学的不到一周的初学者,所以如果这些问题看起来很明显,请原谅我。
我在一个网站上抓取了数据,但很遗憾,结果的格式不是很好,如果不进行转换,我将无法使用它。
我的数据
我有一个字符串列,其中包含许多我想转换为虚拟变量的特征。
字符串示例:“8 个设备和选项extérieur et châssisjantes aluintérieurBluetoothfermeture électrique5 placessécuritékit téléphone main libre bluetoothABSautreAPPUI TETE ARclimatisation”
我想做的事
我想创建一个虚拟列“蓝牙”,如果字符串中包含模式“蓝牙”,则该列等于一,否则为零。
我想创建另一个虚拟列“Climatisation”,如果字符串中包含模式“climatisation”,则该列等于 1,否则为零。
...等
并针对我感兴趣的 5 或 6 个模式进行操作。
我的尝试
我想对正则表达式使用匹配测试并将其与 pd.getdummies 方法结合使用。
import re
import pandas as pd
def match(My_pattern,My_strng):
m=re.search(My_pattern,My_strng)
if m:
return True
else:
return False
pd.getdummies(df["My messy strings colum"], ...)
我还没有成功找到如何解决 pd.getdummies 参数来指定我想在列上应用的测试。
我什至想知道这是否是最好的策略,以及是否更容易创建其他平行列并在我凌乱的字符串上应用 match.group() 来填充它们。 不确定我是否会知道如何编程。
感谢您的帮助
【问题讨论】:
-
你可以使用
df['bluetooth'] = df['column'].str.contains('Bluetooth').astype(int) -
非常感谢,在填充了所有 NaN 元素后,它就可以工作了。
标签: python regex pandas dummy-variable