我很抱歉,但是有在线文档和示例,我仍然不理解。我有一个带有日期时间格式(yyyy-mm-dd)日期索引的pandas df,并且我正在尝试根据列表中相同格式(yyyy-mm-dd)的日期子集重新采样或重新索引此数据框架。我已经转换了df。使用:
索引datetime的值dfmla.index = pd.to_datetime(dfmla.index)
我尝试了各种各样的事情,我不断得到NaN的应用索引后。我知道这一定是数据类型的问题,我的df的形式是:
df.dtypes
Out[30]:
month int64
mean_mon_flow float64
std_mon_flow float64
monthly_flow_ln float64
std_anomaly float64
dtype: object
我的数据是这样的:
df.head(5)
Out[31]:
month mean_mon_flow std_mon_flow monthly_flow_ln std_anomaly
date
1949-10-01 10 8.565828 0.216126 8.848631 1.308506
1949-11-01 11 8.598055 0.260254 8.368006 -0.883938
1949-12-01 12 8.612080 0.301156 8.384662 -0.755149
1950-08-01 8 8.614236 0.310865 8.173776 -1.416887
1950-09-01 9 8.663943 0.351730 8.437089 -0.644967
我的month_list(列表数据类型)看起来像这样:
month_list[0:2]
Out[37]: ['1950-08-01', '1950-09-01']
我需要我的压缩,新的驯鹿索引df看起来像这样:
month mean_mon_flow std_mon_flow monthly_flow_ln std_anomaly
date
1950-08-01 8 8.614236 0.310865 8.173776 -1.416887
1950-09-01 9 8.663943 0.351730 8.437089 -0.644967
谢谢你的建议,
如果您确定所有month_list
都在索引中,则可以使用df.loc[month_list]
,否则可以使用reindex
:
df.reindex(pd.to_datetime(month_list))
输出:
month mean_mon_flow std_mon_flow monthly_flow_ln std_anomaly
date
1950-08-01 8 8.614236 0.310865 8.173776 -1.416887
1950-09-01 9 8.663943 0.351730 8.437089 -0.644967