2017-03-06 134 views
1

我有一個熊貓數據框(Python 2.11),其中包含時間作爲一列中的文本(格式hh:mm:ss)。我只想獲得小時數(minus或seconds)。爲此,我創建一個清單從熊貓列表中獲取價值

df.Time.str.split(":") 

這樣我得到一個清單,例如[10,23,00]。如何訪問第一個(第二個或第三個)值以繼續處理數據框中的每一行?

df.Time.str.split(":")[0] 

返回第一行而不是第一個元素。

回答

5

我認爲你需要的參數expand=True - 那麼輸出的df 3列:

df.Time.str.split(":", expand=True) 

樣品:

df = pd.DataFrame({'Time':['10:23:00', '11:23:00']}) 

print (df) 
     Time 
0 10:23:00 
1 11:23:00 

df[['hour','minute','seconds']] = df.Time.str.split(":", expand=True) 
print (df) 
     Time hour minute seconds 
0 10:23:00 10  23  00 
1 11:23:00 11  23  00 

如果不需要所有的值可以使用.str[]的列表中選擇值 - docs

df['hour'] = df.Time.str.split(":").str[0] 
df['minute'] = df.Time.str.split(":").str[1] 
print (df) 
     Time hour minute 
0 10:23:00 10  23 
1 11:23:00 11  23 
+1

展開很好:-) + 1 – pansen

+0

@pansen - 謝謝。 – jezrael