我有以下数据报:
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。
答案 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