2017-04-04 57 views
1

我有具有元素作爲一個數據幀:使用「datetime64 [NS]」格式用於從熊貓提取數據幀

df1[1:4] 
        Sims 
2014-01-02 [51, 53, 51, 3... 
2014-01-03 [56, 48, 64, ... 
2014-01-04 [57, 45, 47, ... 

SIMS的各自500個元素的列表。

我有另外一個數據幀爲:

df2[1:4] 
          Date Month Day HE Year 
DateTime            
2012-01-01 02:00:00 2012-01-01 1.0 1.0 2.0 2012.0 
2012-01-01 03:00:00 2012-01-01 1.0 1.0 3.0 2012.0 
2012-01-01 04:00:00 2012-01-01 1.0 1.0 4.0 2012.0 

我試圖在各種配置如下:

df1[df2['Date']] 

但它的錯誤了抱怨df1指數和df2['Date']之間的時間差格式。但是,兩者的時間格式相同,如下所示。

df1.index[1:4] 
DatetimeIndex(['2014-01-02', '2014-01-03', '2014-01-04'], dtype='datetime64[ns]', freq=None) 


    df2['Date'][1:4].values 
array(['2012-01-01T00:00:00.000000000', '2012-01-01T00:00:00.000000000', 
     '2012-01-01T00:00:00.000000000'], dtype='datetime64[ns]') 

如何進行以下工作:

df1[df2['Date']] 

編輯: 錯誤消息:

KeyError: "['2012-01-01T00:00:00.000000000' '2012-01-01T00:00:00.000000000'\n '2012-01-01T00:00:00.000000000' ..., '2016-12-31T00:00:00.000000000'\n '2016-12-31T00:00:00.000000000' '2016-12-31T00:00:00.000000000'] not in index" 
+0

你可以添加實際的錯誤信息到你的文章? – Sebastiaan

回答

2

df1[df2['Date']]型索引會在我的經驗錯誤,如果你想索引在行而不是列。這個問題大概是你讓pandas猜測你想切片哪個軸,並且這並不總是按需要平移。

你可以嘗試使用更明確的索引方法,如df1.loc[df2['Date'], :]df1.xs(df2['Date'], 0)