Python 如何获取列中的上一行值
我有一个像这样的dfPython 如何获取列中的上一行值,python,pandas,dataframe,row,Python,Pandas,Dataframe,Row,我有一个像这样的df | count | A | |---------|---| | yes |2 | | yes |2 | | total | | | yes |2 | | yes |2 | | total | | 我想要一个如下的输出 | count | A | |---------|---| | yes |2 | | yes |2 | | total | 2 | |
| count | A |
|---------|---|
| yes |2 |
| yes |2 |
| total | |
| yes |2 |
| yes |2 |
| total | |
我想要一个如下的输出
| count | A |
|---------|---|
| yes |2 |
| yes |2 |
| total | 2 |
| yes |2 |
| yes |2 |
| total | 2 |
也就是说,用前一行的值填充“总计”的A列值
你知道如何实现这一点吗?你可以试试
df.loc
和series.mask
和ffill
df.loc[df['count'].eq("total"),"A"] = df['A'].mask(df['A'].eq('')).ffill()
你尝试了什么?你的尝试出了什么问题?非常感谢anky,挽救了我的生命time@PriyaChauhan很高兴能帮上忙。。!!我相信你可能尝试了一些不符合你意图的东西。如果您能在将来发布,我们将不胜感激,因为这有助于用户纠正您的错误,而不是为您解决问题。。这是一个双赢的局面当然@anky,,我试着用pandas shift函数来做这个,但没有达成一致solution@PriyaChauhanN:我相信你将来会考虑这个问题。快乐编码!!
print(df)
count A
0 yes 2
1 yes 2
2 total 2
3 yes 2
4 yes 2
5 total 2