繁体   English   中英

Pandas DataFrame 基于其他两列创建新的 csv 列

[英]Pandas DataFrame create new csv column based on two other columns

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

在 pandas / numpys 中执行此操作的最佳方法是什么?

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

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

使用 pandas 应用方法的另一种解决方案:

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)

编辑:

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

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM