python dataframe列应用函数

19 浏览
0 Comments

python dataframe列应用函数

我有一个数据框df,想要使用df.apply或其他pandas函数添加一个df[\'C\']列,规则如下:如果df[\'A\']包含子字符串\'SA\',则df[\'C\']为\'M\',否则为\'F\'。如何解决?

0
0 Comments

在这个问题中,原因是我们想要在Python的DataFrame中的某一列应用一个函数。在这种情况下,我们想要使用numpy.where函数和pandas.Series.str.contains或pandas.Series.str.startswith函数创建的布尔掩码。

解决这个问题的方法是使用numpy.where函数。首先,我们使用pandas的str.contains函数或str.startswith函数创建一个布尔掩码。这些函数可以用来检查DataFrame中某一列的每个元素是否包含特定字符串或以特定字符串开头。然后,我们使用numpy.where函数将满足条件的元素替换为'M',不满足条件的元素替换为'F'。最后,我们将新的一列添加到DataFrame中。

这里是解决这个问题的代码示例:

import numpy as np
import pandas as pd
df = pd.DataFrame({'A': ['SA01', '0007', 'SA06', '0198', 'SA06'],
                   'B': [2012, 2012, 2013, 2014, 2014]})
df['new'] = np.where(df['A'].str.contains('SA'), 'M', 'F')
# 或者使用下面的解决方法
# 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

以上就是使用Python DataFrame中的一列应用函数的原因和解决方法。

0