如何解决更改数据帧中的时间索引
- 第一期:
我正在尝试将样本频率从单独事件更改为连续范围:
import pandas as pd
all_days= pd.period_range('2020-01-01','2020-01-08')
df1=pd.DataFrame.from_dict({'2020-01-04': 2,'2020-01-07': 10},'index')
df_new = df1.reindex(all_days,fill_value=0)
我明白了:
df_new
Out[571]:
0
2020-01-01 0
2020-01-02 0
2020-01-03 0
2020-01-04 0
2020-01-05 0
2020-01-06 0
2020-01-07 0
2020-01-08 0
但我想得到:
df_new
Out[571]:
0
2020-01-01 0
2020-01-02 0
2020-01-03 0
2020-01-04 2
2020-01-05 0
2020-01-06 0
2020-01-07 10
2020-01-08 0
-
更高级的问题:我想对数据框执行相同的操作,为日期提供多个值,例如:
df2=pd.DataFrame([[10,20],[6,8],[2,2]],['2020-01-04','2020-01-07','2020-01-07'],['A','B'])
对于:
df_new = df2.reindex(all_days,fill_value=0)
出现错误: ValueError:无法从重复轴重新索引
但我想得到:
df_new
Out[571]:
A B
2020-01-01 0 0
2020-01-02 0 0
2020-01-03 0 0
2020-01-04 10 20
2020-01-05 0 0
2020-01-06 0 0
2020-01-07 6 8
2020-01-07 2 2
2020-01-08 0 0
解决方法
显然您需要指定索引是 DatetimeIndex。 解决方案:
all_days= pd.date_range('2020-01-01','2020-01-08')
df1=pd.DataFrame.from_dict({'2020-01-04': 2,'2020-01-07': 10},'index')
df1.index = pd.DatetimeIndex(df1.index)
df_new = df1.reindex(all_days,enter code here fill_value=0)
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。