2017-02-08 31 views
0

我有幾列,其中一些值是DateTime,一些只是一年。我想索引日期時間的值,如果I = I[:4]我在循環遍歷列後得到變量I的年份,而不是錯誤,指出'datetime.datetime' object is not subscriptable。從本質上講,我想從日期時間中刪除所有不是年份的列,而列中的值只有一年的混合整數,而我只想檢索年份的日期時間實例。如何在Pandas數據框中索引DateTime

回答

0

我不完全確定你正在嘗試做什麼,不幸的是我不能發表評論(還)。

從我的猜測,你有一個DataFrame與一列混合類型,你想要所有的值類型datetime轉換爲int。作爲一個例子,這裏是一個數據框:

>>> data = [[1, 1990], [2, datetime(1991, 1, 1)]] 
    >>> df = pd.DataFrame(data, columns=['id', 'time']) 
    >>> df 
     id     time 
    0 1     1990 
    1 2 1991-01-01 00:00:00 

您可以使用maplink)到第二列轉換:

>>> df.loc[:,'date'] = df.loc[:,'date'].map(lambda x: x.year if isinstance(x, datetime) else x) 
    >>> df 
     id time 
    0 1 1990 
    1 2 1991 
+0

謝謝!這正是我所期待的。 – Min

相關問題