2015-09-27 70 views
4

構建一個系列時失去價值我有一個數據幀td由以下列:從數據幀列

In [111]: td.head(5) 
Out[111]: 
     Date  Time Price 
0 2015-09-21 00:01:26 4303.00 
1 2015-09-21 00:01:33 4303.00 
2 2015-09-21 00:02:21 4303.50 
3 2015-09-21 00:02:21 4303.50 
4 2015-09-21 00:02:31 4303.25 

我的目標是有日期時間和價格的一個系列。

我想:

s = pd.Series(td['Price'], index=pd.to_datetime(td['Date'] + ' ' + td['Time'])) 

但得到的結果:

>>> s 
2015-09-21 00:01:26 NaN 
2015-09-21 00:01:33 NaN 
2015-09-21 00:02:21 NaN 
2015-09-21 00:02:21 NaN 
         .. 
2015-09-25 16:59:58 NaN 
2015-09-25 16:59:58 NaN 
2015-09-25 16:59:58 NaN 
2015-09-25 16:59:59 NaN 
Name: Price, dtype: float64 

所有的 「價格」 值是NaN的。任何暗示我做錯了什麼?

回答

2

從DataFrame列創建系列並傳入索引時,根據新索引,該列將爲重新編號爲

就你而言,新創建的日期時間索引中的標籤最初都沒有用於索引列td['Price'],因此返回一系列缺失(NaN)值。

的最簡單的解決方案是在td['Price'].values代替經過:

>>> pd.Series(td['Price'].values, index=pd.to_datetime(td['Date']+' '+td['Time']) 
2015-09-21 00:01:26 4303.00 
2015-09-21 00:01:33 4303.00 
2015-09-21 00:02:21 4303.50 
2015-09-21 00:02:21 4303.50 
2015-09-21 00:02:31 4303.25 
... 

使用td['Price'].values意味着從列中的值是在一個NumPy的數組:此沒有索引和熊貓不會嘗試重新索引值。