【发布时间】:2018-07-29 19:38:43
【问题描述】:
我有一个如下所示的数据框。最右边的列是我想要的列:
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()
【问题讨论】: