熊猫DataFrame基于其他两个列创建新的csv列

时间:2020-06-23 11:04:21

标签: python python-3.x

我需要在一个名为BTTS的csv中创建一个新列,该列基于另外两个列FTHG和FTAG。如果FTHG和FTAG都大于零,则BTTS应该为1。否则应为零。

在pandas / numpys中最好的方法是什么?

2 个答案:

答案 0 :(得分:1)

我不确定,最佳方式是什么。但是这是一种使用熊猫loc方法的解决方案:

df.loc[((df['FTHG'] > 0) & (df['FTAG'] > 0)),'BTTS'] = 1
df['BTTS'].fillna(0, inplace=True)

使用熊猫apply方法的另一种解决方案:

def check_greater_zero(row):
    return 1 if row['FTHG'] > 0 & row['FTAG'] > 0 else 0

df['BTTS'] = df.apply(check_greater_zero, axis=1)

编辑:

如评论中所述,第一个矢量化的实现效率更高。

答案 1 :(得分:0)

我不知道这是否是最好的方法,但这可行:)

df['BTTS'] = [1 if x == y == 1 else 0 for x, y in zip(df['FTAG'], df['FTHG'])]