Pandas Multindex:迭代行并添加特定值以创建新的variab

2024-06-24 13:01:22 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个带有Multindex(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

Tags: 数据idpandasdatetimejulx1x2multindex
1条回答
网友
1楼 · 发布于 2024-06-24 13:01:22

按第一级使用^{},并用^{}替换缺少的值:

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

相关问题 更多 >