重采样熊猫多索引数据帧

武尔古兹

我有一个类似于以下内容的 Pandas MultiIndex 数据框:

import pandas as pd

rows = [('One', 'One', 'One', '20120105', 1, 'Text1'),
        ('One', 'One', 'One', '20120107', 2, 'Text2'),
        ('One', 'One', 'One', '20120110', 3, 'Text3'),
        ('One', 'One', 'Two', '20120104', 4, 'Text4'),
        ('One', 'Two', 'One', '20120109', 5, 'Text5'),
        ('Two', 'Three', 'Four', '20120111', 6, 'Text6')]
cols = ['Type', 'Subtype', 'Subsubtype', 'Date', 'Number', 'Text']
df = pd.DataFrame.from_records(rows, columns=cols)
df['Date'] = pd.to_datetime(df['Date'])
df = df.set_index(['Type', 'Subtype', 'Subsubtype'])
end_date = max(df['Date'])
print(df)

                              Date  Number   Text
Type Subtype Subsubtype                          
One  One     One        2012-01-05       1  Text1
             One        2012-01-07       2  Text2
             One        2012-01-10       3  Text3
             Two        2012-01-04       4  Text4
     Two     One        2012-01-09       5  Text5
Two  Three   Four       2012-01-11       6  Text6

我想对数据进行上采样,以便 Type-Subtype-Subsubtype 索引的每个组合获取每日日期数据:从数据可用的最小日期到 end_date = max(df['Date'])。

我想要的一个例子:

                              Date  Number   Text
Type Subtype Subsubtype                          
One  One     One        2012-01-05       1  Text1
             One        2012-01-06       1  Text2
             One        2012-01-07       2  Text2
             One        2012-01-08       2  Text2
             One        2012-01-09       2  Text2
             One        2012-01-10       3  Text3
             One        2012-01-11       3  Text3
             Two        2012-01-04       4  Text4
             Two        2012-01-05       4  Text4
             Two        2012-01-06       4  Text4
             Two        2012-01-07       4  Text4
             Two        2012-01-08       4  Text4
             Two        2012-01-09       4  Text4
             Two        2012-01-10       4  Text4
             Two        2012-01-11       4  Text4
     Two     One        2012-01-09       5  Text5
             One        2012-01-10       5  Text5
             One        2012-01-11       5  Text5
Two  Three   Four       2012-01-11       6  Text6

浏览类似的问题,我找不到任何可以解决的问题。任何帮助是极大的赞赏。

耶斯列

您可以使用:


df = df.groupby(level=[0,1,2]) \
       .apply(lambda x: x.set_index('Date').reindex(pd.date_range(x['Date'].iat[0], 
                                                                  end_date))).ffill()
print (df)
                                    Number   Text
Type Subtype Subsubtype                          
One  One     One        2012-01-05     1.0  Text1
                        2012-01-06     1.0  Text1
                        2012-01-07     2.0  Text2
                        2012-01-08     2.0  Text2
                        2012-01-09     2.0  Text2
                        2012-01-10     3.0  Text3
                        2012-01-11     3.0  Text3
             Two        2012-01-04     4.0  Text4
                        2012-01-05     4.0  Text4
                        2012-01-06     4.0  Text4
                        2012-01-07     4.0  Text4
                        2012-01-08     4.0  Text4
                        2012-01-09     4.0  Text4
                        2012-01-10     4.0  Text4
                        2012-01-11     4.0  Text4
     Two     One        2012-01-09     5.0  Text5
                        2012-01-10     5.0  Text5
                        2012-01-11     5.0  Text5
Two  Three   Four       2012-01-11     6.0  Text6

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

在熊猫中转置多索引数据帧

来自分类Dev

在多索引数据帧熊猫中聚合

来自分类Dev

熊猫对整数索引的重采样

来自分类Dev

如何计算熊猫中重新采样的多索引数据框

来自分类Dev

如何计算熊猫中重新采样的多索引数据框

来自分类Dev

在熊猫的多索引数据帧上使用滚动功能

来自分类Dev

使多索引熊猫数据帧不对称

来自分类Dev

对多索引熊猫数据帧上的重复行求和

来自分类Dev

如何将循环时间序列熊猫数据帧转换为熊猫多索引数据帧

来自分类Dev

用数字索引重采样熊猫系列

来自分类Dev

用多索引重新采样熊猫

来自分类Dev

如何对数据帧进行重采样

来自分类Dev

重采样,分组,旋转熊猫数据框

来自分类Dev

熊猫中的数据重采样问题

来自分类Dev

连接多索引数据帧

来自分类Dev

如何为多索引熊猫数据帧重新编制索引?

来自分类Dev

如何为多索引熊猫数据帧重新编制索引?

来自分类Dev

用循环数据填充熊猫数据帧上采样

来自分类Dev

熊猫DateTime索引重采样不起作用

来自分类Dev

如何在构造函数中设置熊猫数据帧多索引

来自分类Dev

重采样日期时间与先前值之间的间隔(多索引)

来自分类Dev

如何对时间序列熊猫数据帧重新采样?

来自分类Dev

熊猫数据帧的随机采样(行和列)

来自分类Dev

熊猫在大型数据帧上对n点进行重新采样

来自分类Dev

将熊猫数据帧重新采样为任意数字

来自分类Dev

重采样熊猫系列

来自分类Dev

熊猫高效重采样

来自分类Dev

重新索引多索引熊猫数据框

来自分类Dev

多索引数据框中的熊猫索引