我是 pandas 库的新手,非常感谢您的帮助。 这是我的输入
我想查看“标签”列,对于为每个 ID 找到的第一个“TRUE”标签,我需要将库存值复制到新列中。如果一个 ID 有多个 TRUE,我只需要考虑第一个。
这是我想要获得的输出:
感谢您的帮助!
最佳答案
另一个版本,使用.groupby()
:
m = df.index.isin(
df[df["LABEL"] == True].reset_index().groupby("ID").index.first()
)
df.loc[m, "NEW"] = df.loc[m, "STOCK"]
print(df)
打印:
ID DATE LABEL STOCK NEW
0 AA 01/26/2020 True 100 100.0
1 AA 01/27/2020 False 200 NaN
2 BB 01/28/2020 False 300 NaN
3 BB 01/29/2020 True 500 500.0
4 BB 01/30/2020 False 100 NaN
5 CC 01/26/2020 True 200 200.0
6 CC 01/27/2020 False 300 NaN
7 CC 01/28/2020 False 100 NaN
8 CC 01/29/2020 True 400 NaN
关于python - 按 ID 分组并对一列的值应用条件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67291004/