简体   繁体   English

Pandas 重新索引以填充日期索引

[英]Pandas reindex to fill date index

How to reindex this df to fill missing dates.如何重新reindex此 df 以填充缺失的日期。

           query    min max mean
DATE                
2020-07-04  kabel   573 838 666.547619
2020-07-13  kabel   681 681 681.000000
2020-07-15  kabel   583 738 654.565217

As output I want to get作为 output 我想得到

               query    min max mean
DATE                
2020-07-04  kabel   573 838 666.547619
2020-07-05  kabel   None None None
...         ...     ...  ...  ...
2020-07-12  kabel   None None None
2020-07-13  kabel   681 681 681.000000
2020-07-15  kabel   583 738 654.565217

Using pd.to_datetime convert the index of dataframe to DatetimeIndex , then use DataFrame.asfreq to reindex the dataframe with daily frequency and use Series.ffill to forward fill the values in query column:使用pd.to_datetime将 dataframe 的索引转换为DatetimeIndex ,然后使用DataFrame.asfreq重新索引 dataframe 在query频率列中使用Series.ffill :forward fillf 与daily频率列。

df.index = pd.to_datetime(df.index)
df = df.asfreq('D').assign(query=lambda x: x['query'].ffill())

Result:结果:

print(df)
            query    min    max        mean
DATE                                       
2020-07-04  kabel  573.0  838.0  666.547619
2020-07-05  kabel    NaN    NaN         NaN
2020-07-06  kabel    NaN    NaN         NaN
2020-07-07  kabel    NaN    NaN         NaN
2020-07-08  kabel    NaN    NaN         NaN
2020-07-09  kabel    NaN    NaN         NaN
2020-07-10  kabel    NaN    NaN         NaN
2020-07-11  kabel    NaN    NaN         NaN
2020-07-12  kabel    NaN    NaN         NaN
2020-07-13  kabel  681.0  681.0  681.000000
2020-07-14  kabel    NaN    NaN         NaN
2020-07-15  kabel  583.0  738.0  654.565217

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM