【问题标题】:python dataframe column apply a function [duplicate]python数据框列应用一个函数[重复]
【发布时间】:2019-02-17 02:25:31
【问题描述】:

我有一个数据框

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 或者 pandas 的其他函数来添加一个 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'。如何解决?

【问题讨论】:

    标签: python pandas


    【解决方案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
    

    【讨论】:

      猜你喜欢
      • 2020-12-31
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-07-24
      • 1970-01-01
      • 2020-04-26
      • 1970-01-01
      相关资源
      最近更新 更多