gpt4 book ai didi

python - 如何根据不同列中的值将一列添加到 pandas 数据框?

转载 作者:行者123 更新时间:2023-12-02 02:18:49 26 4
gpt4 key购买 nike

我有一个如下所示的 Pandas 数据框:

a     b    c    d   
0.7 0.1 0.2 0.3
0.5 0.2 0.2 0.2

我正在编写一些如下所示的嵌套循环,以添加基于这 4 列的列结果。

def class_decider(df):
for i in df['a']:
if i > 0.6:
a = "class A"
elif:
for j in df['b']:
if j > 0.2:
a = "class B"
elif:
for k in df['c']:
if j > 0.15:
a = "class C"
elif:
for l in df['d']:
if l > 0.10:
a = "class D"
else:
a = "null"
return a

谁能帮忙优化一下代码。

预期输出:

a     b    c    d     result
0.7 0.1 0.2 0.3 class A
0.5 0.2 0.2 0.2 class C

最佳答案

IIUC,您可以将 abcd 列与 0.6 进行比较, 0.2, 0.15, 0.10 创建一个 bool 掩码,然后使用 idxmax 沿 axis=1 在此掩码上获取第一个列的名称True 值出现在掩码中。

c = ['a', 'b', 'c', 'd']
m = df[c].gt([0.6, 0.2, 0.15, 0.10])
df['Result'] = m.idxmax(1).radd('Class ').mask(~m.any(1), 'Null')

     a    b    c    d   Result
0 0.7 0.1 0.2 0.3 Class a
1 0.5 0.2 0.2 0.2 Class c

关于python - 如何根据不同列中的值将一列添加到 pandas 数据框?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66750958/

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