Pandas将日期重新索引到列表中的日期子集



我很抱歉,但是有在线文档和示例,我仍然不理解。我有一个带有日期时间格式(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

相关内容

  • 没有找到相关文章

最新更新