Python 如何将数据帧转换为时间序列?
我正在寻找一种在不拆分索引列和值列的情况下将数据帧转换为TimeSeries的方法。有什么想法吗?谢谢Python 如何将数据帧转换为时间序列?,python,pandas,time-series,Python,Pandas,Time Series,我正在寻找一种在不拆分索引列和值列的情况下将数据帧转换为TimeSeries的方法。有什么想法吗?谢谢 In [20]: import pandas as pd In [21]: import numpy as np In [22]: dates = pd.date_range('20130101',periods=6) In [23]: df = pd.DataFrame(np.random.randn(6,4),index=dates,columns=list('ABCD')) In
In [20]: import pandas as pd
In [21]: import numpy as np
In [22]: dates = pd.date_range('20130101',periods=6)
In [23]: df = pd.DataFrame(np.random.randn(6,4),index=dates,columns=list('ABCD'))
In [24]: df
Out[24]:
A B C D
2013-01-01 -0.119230 1.892838 0.843414 -0.482739
2013-01-02 1.204884 -0.942299 -0.521808 0.446309
2013-01-03 1.899832 0.460871 -1.491727 -0.647614
2013-01-04 1.126043 0.818145 0.159674 -1.490958
2013-01-05 0.113360 0.190421 -0.618656 0.976943
2013-01-06 -0.537863 -0.078802 0.197864 -1.414924
In [25]: pd.Series(df)
Out[25]:
0 A
1 B
2 C
3 D
dtype: object
这里有一种可能性
[3]: df
Out[3]:
A B C D
2013-01-01 -0.024362 0.712035 -0.913923 0.755276
2013-01-02 2.624298 0.285546 0.142265 -0.047871
2013-01-03 1.315157 -0.333630 0.398759 -1.034859
2013-01-04 0.713141 -0.109539 0.263706 -0.588048
2013-01-05 -1.172163 -1.387645 -0.171854 -0.458660
2013-01-06 -0.192586 0.480023 -0.530907 -0.872709
In [4]: df.unstack()
Out[4]:
A 2013-01-01 -0.024362
2013-01-02 2.624298
2013-01-03 1.315157
2013-01-04 0.713141
2013-01-05 -1.172163
2013-01-06 -0.192586
B 2013-01-01 0.712035
2013-01-02 0.285546
2013-01-03 -0.333630
2013-01-04 -0.109539
2013-01-05 -1.387645
2013-01-06 0.480023
C 2013-01-01 -0.913923
2013-01-02 0.142265
2013-01-03 0.398759
2013-01-04 0.263706
2013-01-05 -0.171854
2013-01-06 -0.530907
D 2013-01-01 0.755276
2013-01-02 -0.047871
2013-01-03 -1.034859
2013-01-04 -0.588048
2013-01-05 -0.458660
2013-01-06 -0.872709
dtype: float64
我知道这场比赛已经晚了,但还有几分 是否将
数据帧
视为时间序列
是索引的类型。在您的情况下,您的索引已经是一个TimeSeries
,所以您可以继续了。有关使用pd.timeseries索引可以执行的所有酷切片的更多信息,请参阅
现在,其他人可能会来到这里,因为他们有一个列“DateTime”
,他们想建立一个索引,在这种情况下,答案很简单
ts = df.set_index('DateTime')
你想用它做什么?e、 g.您希望的输出是什么?您的数据是二维的,您希望如何使其成为一维的?e、 例如,以单个列为例,或者在一个缩减操作中对所有列应用一个函数,或者连接dataPost
df.info()
please我刚才看到了这个答案。如果数据帧只有一列呢unstack
将返回一个带有两级索引的序列,pd.series(df)
似乎不起作用(它的作用非常奇怪,因为它将列标题拆分为字符,并用此拆分的副本填充序列)。我让它工作的唯一方法是使用df[df.columns[0]]
但这样做有点不自然。@Cristian Ciupitu在运行了您的建议后,键入(ts)它仍然会打印pandas.core.frame.DataFrame。我相信我们想要的是一个timeseries对象,对吗?据麦金尼说,韦斯。用于数据分析的Python:与Pandas、NumPy和IPython(Kindle位置6861)的数据争论。奥雷利媒体。Kindle版。。。当我们运行ts.index时,它应该打印:“pandas.tseries.index.DatetimeIndex”。@Ryancase,我不是这个答案的作者。@EngineeredE在运行您的建议后,键入(ts)它仍然打印pandas.core.frame.DataFrame。我相信我们想要的是一个timeseries对象,对吗?据麦金尼说,韦斯。用于数据分析的Python:与Pandas、NumPy和IPython(Kindle位置6861)的数据争论。奥雷利媒体。Kindle版。。。当我们运行ts.index时,它应该打印:“pandas.tseries.index.DatetimeIndex”