gpt4 book ai didi

python - Pandas 多重索引 : iterate rows and add specific values to create a new variable

转载 作者:行者123 更新时间:2023-12-01 00:46:06 26 4
gpt4 key购买 nike

我有一个包含 Multiindex(iddatetime)的 pandas 数据框和一个名为 X1 的列。

                                X1
id datetime
a1ssjdldf 2019 Jul 10 2
2019 Jul 11 22
2019 Jul 12 21
r2dffs 2019 Jul 10 14
2019 Jul 11 13
2019 Jul 12 11

我想创建一个新变量X2,其中对应的值是同一行的X1值与上一行的X1值之间的差。但每次它看到一个新的 id 时,相应的值都必须从零重新开始。

例如:

                                X1          X2
id datetime
a1ssjdldf 2019 Jul 10 2 0
2019 Jul 11 22 20
2019 Jul 12 21 -1
r2dffs 2019 Jul 10 14 0
2019 Jul 11 13 -1
2019 Jul 12 11 -2

最佳答案

使用DataFrameGroupBy.diff按第一级并将缺失值替换为 Series.fillna :

df['X2'] = df.groupby(level=0)['X1'].diff().fillna(0, downcast='int')
print (df)
X1 X2
id datetime
a1ssjdldf 2019 Jul 10 2 0
2019 Jul 11 22 20
2019 Jul 12 21 -1
r2dffs 2019 Jul 10 14 0
2019 Jul 11 13 -1
2019 Jul 12 11 -2

关于python - Pandas 多重索引 : iterate rows and add specific values to create a new variable,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56969853/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com