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

时间:2018-02-16 19:56:45

标签: pandas datagram

我有以下数据报:

        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 个答案:

答案 0 :(得分:2)

选项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