熊猫数据框架索引-仅月和日



我想有一个DataFrameDatetimeIndex,但我只想要月份和天数;而不是几年。我希望它看起来像这样:

(index)  (values)
01-01    56.2
01-02    59.6
...
01-31    62.3
02-01    61.6
...
12-31    44.0

我试过创建一个date_range,但这似乎需要年份输入,所以我似乎不知道如何实现上述目标。

你可以这样做:

In [78]: df = pd.DataFrame({'val':np.random.rand(10)}, index=pd.date_range('2000-01-01', freq='10D', periods=10))
In [79]: df
Out[79]:
                 val
2000-01-01  0.422023
2000-01-11  0.215800
2000-01-21  0.186017
2000-01-31  0.804285
2000-02-10  0.014004
2000-02-20  0.296644
2000-03-01  0.048683
2000-03-11  0.239037
2000-03-21  0.129382
2000-03-31  0.963110
In [80]: df.index.dtype_str
Out[80]: 'datetime64[ns]'
In [81]: df.index.dtype
Out[81]: dtype('<M8[ns]')
In [82]: df.index = df.index.strftime('%m-%d')
In [83]: df
Out[83]:
            val
01-01  0.422023
01-11  0.215800
01-21  0.186017
01-31  0.804285
02-10  0.014004
02-20  0.296644
03-01  0.048683
03-11  0.239037
03-21  0.129382
03-31  0.963110
In [84]: df.index.dtype_str
Out[84]: 'object'
In [85]: df.index.dtype
Out[85]: dtype('O')

注意:索引dtype现在是一个字符串(对象)

如果需要的话,你当然可以一步完成:
In [86]: pd.date_range('2000-01-01', freq='10D', periods=5).strftime('%m-%d')
Out[86]:
array(['01-01', '01-11', '01-21', '01-31', '02-10'],
      dtype='<U5')

最新更新