使用 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
我有以下数据报:
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