gpt4 book ai didi

python - 在 Pandas 中跨列查找第一个非零条目

转载 作者:太空宇宙 更新时间:2023-11-03 15:42:28 24 4
gpt4 key购买 nike

我在 Pandas 中有一个棘手的数据框需要保持原样,这里是一个格式示例:

条目名称 |条目编号 | 052018 信息_1 | 062018 信息_2 | 052018 other_1 | 062018 other_2 |

我需要添加一个新列来检索信息的第一个非零条目的列标题,而另一列将检索其他的第一个非零条目的列标题(从而真正给我们一个日期)

关于如何执行此操作的任何帮助?

谢谢!

最佳答案

使用filter对于具有 infoother 的选择列,然后添加名为 NaN 的新列作为一般解决方案 - 如果只有 ,则此值位于新列中0 行,最后比较值 ne (!=) 并通过 idxmax 获取第一个 True 的列:

print (df)
entry_name entry_id 052018 info_1 062018 info_2 052018 other_1 \
0 a 1 0 0 1
1 b 2 0 1 0
2 c 4 0 0 0
3 d 5 2 3 4

062018 other_2
0 2
1 0
2 0
3 4

df1 = df.filter(like='info').copy()
df1[np.nan] = 1
df['info'] = df1.ne(0).idxmax(axis=1)

df2 = df.filter(like='other').copy()
df2[np.nan] = 1
df['other'] = df2.ne(0).idxmax(axis=1)
print (df)
entry_name entry_id 052018 info_1 062018 info_2 052018 other_1 \
0 a 1 0 0 1
1 b 2 0 1 0
2 c 4 0 0 0
3 d 5 2 3 4

062018 other_2 info other
0 2 NaN 052018 other_1
1 0 062018 info_2 NaN
2 0 NaN NaN
3 4 052018 info_1 052018 other_1

关于python - 在 Pandas 中跨列查找第一个非零条目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51810163/

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