gpt4 book ai didi

python - 识别 pandas 中组内的第一个非零元素

转载 作者:行者123 更新时间:2023-12-01 09:11:58 25 4
gpt4 key购买 nike

我有一个如下所示的数据框。最右边的一列是我想要的列:

Group   Value   Target_Column   
1 0 0
1 0 0
1 1 1
1 2 0
2 0 0
2 1 1
2 0 0
2 1 0

如何识别组 (Group) 中的第一个非零值,然后创建一个保留第一个非零值并将其他所有值显示为零的列?

我一直在尝试利用 idxmax 来实现此目的,如本解决方案中所述: Find first non-zero value in each column of pandas DataFrame

import pandas as pd
df = pd.DataFrame({'Group': [1,1,1,1,2,2,2,2], 'Value': [0,0,1,1,0,1,0,1]})
df.ne(0).idxmax()
g = df.groupby('Group').Value
g.ne(0).idxmax()

最佳答案

使用idxmax

df['Newcol']=0
df.loc[df.Value.ne(0).groupby(df['Group']).idxmax(),'Newcol']=1
df
Out[41]:
Group Value Target_Column Newcol
0 1 0 0 0
1 1 0 0 0
2 1 1 1 1
3 1 2 0 0
4 2 0 0 0
5 2 1 1 1
6 2 0 0 0
7 2 1 0 0

关于python - 识别 pandas 中组内的第一个非零元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51583908/

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