使用 set_index pandas 将数据帧转换为时间序列

turning datagram into timeseries using set_index pandas

我有以下数据报:

        date      DP
0  1/31/1900  0.0357
1  2/28/1900  0.0362
2  3/31/1900  0.0371
3  4/30/1900  0.0379
4  5/31/1900  0.0410

我想把它变成一个时间序列,我正在使用 set_index 来这样做。在 运行 这行代码之后:

df.set_index('date', inplace=True)

我得到以下时间序列:

               DP
date             
1/31/1900  0.0357
2/28/1900  0.0362
3/31/1900  0.0371
4/30/1900  0.0379
5/31/1900  0.0410

这会将日期本身变成索引,这会在以后通过日期连接数据报时弄乱我的程序。我知道我可以手动修复此问题,但我想知道我在这里做错了什么。据我所知,我正在正确使用该函数,如果我不这样做,pandas 将创建一个新的数据报,默认情况下索引为 0-n。

选项 1

pd.Series(df.DP.values, pd.to_datetime(df.date))

date
1900-01-31    0.0357
1900-02-28    0.0362
1900-03-31    0.0371
1900-04-30    0.0379
1900-05-31    0.0410
dtype: float64

选项 2

df.DP.set_axis(pd.to_datetime(df.date), inplace=False)

date
1900-01-31    0.0357
1900-02-28    0.0362
1900-03-31    0.0371
1900-04-30    0.0379
1900-05-31    0.0410
Name: DP, dtype: float64

选项 3
@Wen的解决方法(一发就删)

df.set_index(pd.to_datetime(df.date)).DP

date
1900-01-31    0.0357
1900-02-28    0.0362
1900-03-31    0.0371
1900-04-30    0.0379
1900-05-31    0.0410
Name: DP, dtype: float64