我在熊猫中有以下数据框
code skills
12 sql, r, hadoop
13 python
14 r, matlab
15 ruby, python
我想标记1和0,在其中我发现想要的数据帧是r
的确切位置。
code skills r
12 sql, r, hadoop 1
13 python 0
14 r, matlab 1
15 ruby, python 0
我正在熊猫后面追随
df['r'] = df['skills'].eq(' r,').astype(int)
答案 0 :(得分:5)
您可以使用一些regex
来完成此任务。
pattern = '(?:, r)|(?:r,)'
df['r'] = df.skills.str.contains(pattern).astype(int)
code skills r
0 12 sql, r, hadoop 1
1 13 python 0
2 14 r, matlab 1
3 15 ruby, python 0
答案 1 :(得分:1)
使用apply
(只是另一个选择):
df['r']=df.skills.str.split(',').apply(lambda x: 'r' in map(str.strip, x)).astype(int)
print(df)
code skills r
0 12 sql, r, hadoop 1
1 13 python 0
2 14 r, matlab 1
3 15 ruby, python 0