我有一个数据框
import pandas as pd
data = {'A': ['SA01', '0007', 'SA06', '0198', 'SA06'],
'B': [2012, 2012, 2013, 2014, 2014], }
df = pd.DataFrame(data)
df = A B
SA01 2012
0007 2012
SA06 2013
0198 2014
SA06 2014
我想使用df.apply或其他熊猫函数添加df ['C'],如下所示:
df = A B C
SA01 2012 M
0007 2012 F
SA06 2013 M
0198 2014 F
SA06 2014 M
如果df ['A']包含子字符串'SA',则df ['C']为'M',否则为'F'。该怎么解决?
答案 0 :(得分:1)
将numpy.where
与contains
或startswith
创建的布尔掩码一起使用:
df['new'] = np.where(df['A'].str.contains('SA'), 'M', 'F')
#alternative solution
#df['new'] = np.where(df['A'].str.startswith('SA'), 'M', 'F')
print (df)
A B new
0 SA01 2012 M
1 0007 2012 F
2 SA06 2013 M
3 0198 2014 F
4 SA06 2014 M