gpt4 book ai didi

python - 将多列 Pandas 数据框与一列进行比较

转载 作者:行者123 更新时间:2023-12-04 01:56:10 26 4
gpt4 key购买 nike

我有一个数据框:
df-

    A   B   C   D   E
0 V 10 5 18 20
1 W 9 18 11 13
2 X 8 7 12 5
3 Y 7 9 7 8
4 Z 6 5 3 90

我想添加一列“结果”,如果“E”列中的值大于 B、C 和 D 列中的值,则应返回 1,否则返回 0。

输出应该是:
    A   B   C   D   E   Result
0 V 10 5 18 20 1
1 W 9 18 11 13 0
2 X 8 7 12 5 0
3 Y 7 9 7 8 0
4 Z 6 5 3 90 1

对于几列,我会使用类似的逻辑:if(and(E>B,E>C,E>D),1,0),
但是我必须将大约 20 列(从 B 到 U)与名称“V”进行比较。此外,数据框有大约 10 万行。

我在用
df['Result']=np.where((df.ix[:,1:20])<df['V']).all(1),1,0)

它给出了内存错误。

最佳答案

一种可能的解决方案是在 numpy 中进行比较最后将 bool 掩码转换为 int s:

df['Result'] = (df.iloc[:, 1:4].values < df[['E']].values).all(axis=1).astype(int)
print (df)
A B C D E Result
0 V 10 5 18 20 1
1 W 9 18 11 13 0
2 X 8 7 12 5 0
3 Y 7 9 7 8 0
4 Z 6 5 3 90 1

关于python - 将多列 Pandas 数据框与一列进行比较,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50485466/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com