python dataframe列应用功能

时间:2018-09-12 12:32:30

标签: python pandas

我有一个数据框

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'。该怎么解决?

1 个答案:

答案 0 :(得分:1)

numpy.wherecontainsstartswith创建的布尔掩码一起使用:

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