提问人:David Jackson 提问时间:4/19/2020 更新时间:4/19/2020 访问量:94
pandas 中上一行和下一行之间的差异给出了第一个值的 NaN
Difference between previous row and next row in pandas gives NaN for first value
问:
我是使用 Pandas 的新手,我有一个数据帧 df,如下所示
A B
0 4 5
1 5 8
2 6 11
3 7 13
4 8 15
5 9 30
6 10 477
7 11 3643
8 12 33469
9 13 141409
10 14 335338
11 15 365115
我想了解 B 列的上一行和下一行之间的差异 我使用了 df.set_index('B').diff(),但它为第一行提供了 NaN。如何获得 5 个?
A B
4 NaN
5 3.0
6 3.0
7 2.0
8 2.0
9 15.0
10 447.0
11 3166.0
12 29826.0
13 107940.0
14 193929.0
15 29777.0
答:
1赞
BENY
4/19/2020
#1
让我们来做
df.B.diff().fillna(df.B)
0 5.0
1 3.0
2 3.0
3 2.0
4 2.0
5 15.0
6 447.0
7 3166.0
8 29826.0
9 107940.0
10 193929.0
11 29777.0
Name: B, dtype: float64
评论
0赞
David Jackson
4/19/2020
它在错误的列中产生以下结果 4,1,1,1,1
0赞
BENY
4/19/2020
@Himavari检查您的样本数据,以及我的输出,我认为您的样本数据与您拥有的不匹配
评论
NaN