【发布时间】:2020-11-26 02:46:34
【问题描述】:
我试图用另一列的值替换组中的最后一行,只有当它为空时。我可以分别完成这两部分,但似乎无法将它们结合起来。有人有什么想法吗?
这些是单独的部分:
# replace any NaN values with values from 'target'
df.loc[df['target'].isnull(),'target'] = df['value']
# replace last value in groupby with value from 'target'
df.loc[df.groupby('id').tail(1).index,'target'] = df['value']
原始数据:
date id value target
0 2020-08-07 id01 0.100775 NaN
1 2020-08-08 id01 0.215885 0.215885
2 2020-08-09 id01 0.012154 0.012154
3 2020-08-10 id01 0.374503 NaN
4 2020-08-07 id02 0.369707 0.369707
5 2020-08-08 id02 0.676743 0.676743
6 2020-08-09 id02 0.659521 0.659521
7 2020-08-10 id02 0.799071 NaN
将 groupby('id') 中最后一行的 'target' 列替换为 'value' 中的内容:
date id value target
0 2020-08-07 id01 0.100775 NaN
1 2020-08-08 id01 0.215885 0.215885
2 2020-08-09 id01 0.012154 0.012154
3 2020-08-10 id01 0.374503 0.374503
4 2020-08-07 id02 0.369707 0.369707
5 2020-08-08 id02 0.676743 0.676743
6 2020-08-09 id02 0.659521 0.659521
7 2020-08-10 id02 0.799071 0.799071
【问题讨论】:
标签: python pandas time-series pandas-groupby