2017-02-26 19 views
1

我需要一些幫助。我有一個熊貓數據框的索引,這是一個名爲「Date Device value」(下面)的列:解析一個數據序列的索引

我想將此索引拆分成不同的列,以便我有一個日期列(索引) ,一列表示一週中的某一天和當時的一列。

我試圖使用不同的方法與strftime解析時間,但它不起作用。

這是一個csv,我已經轉換爲具有日期列作爲索引。

Thx a ton for your help!

DateDeviceValue      
11/27/15 17:54 On/Off Chaudière_logement 4.0 4.0 536448.0 On 
11/27/15 17:54 On/Off Chaudière_logement 4.0 4.0 536449.0 Off 
11/27/15 17:54 On/Off Chaudière_logement 4.0 4.0 536450.0 On 
11/27/15 17:54 On/Off Chaudière_logement 4.0 4.0 536451.0 Off 
+0

能否請您格式化代碼/數據段? http://stackoverflow.com/help/formatting – tschale

回答

0

創建從索引其鑄造爲datetime新列,它可能會自動推斷但我更準確地指定格式。 (檢查我的格式字符串是否正確)

是您的DateDeviceValue日期時間索引?這些值是相同的?

如果嘗試這種

df['Time'],df['Date']= df.index.apply(lambda x:x.time()), df.index.apply(lambda x:x.date()) 

別的嘗試這個

df['Time'],df['Date']= df['dt_col'].apply(lambda x:x.time()), df['dt_col'].apply(lambda x:x.date()) 
0

@Kickaha已經回答了同樣的,我只是想更多的將其添加爲如何下手。

確保您在閱讀csv文件時,解析列DateDeviceValue

df = pd.read_csv("foo.csv", parse_dates=['DateDeviceValue']) 

DateDeviceValue列創建通過解析日期和時間兩個新列,並刪除它,如果你不想要它了。正如你所說的你想要日期作爲索引,將其設置爲索引。

df['TIME'] = df['DateDeviceValue'].apply(lambda x: x.time()) 
df['DATE'] = df['DateDeviceValue'].apply(lambda x: x.date()) 
del df['DateDeviceValue'] 
df.set_index('DATE', inplace=True) 

最終數據框的樣子:

DATE  | A  |   B  | C | D | E | F | TIME 
2015-11-27| On/Off |Chaudière_logement |4.0 |4.0 |536448.0| On |17:54:00 
2015-11-27| On/Off |Chaudière_logement |4.0 |4.0 |536449.0| Off|17:54:00 
2015-11-27| On/Off |Chaudière_logement |4.0 |4.0 |536450.0| On |17:54:00 
2015-11-27| On/Off |Chaudière_logement |4.0 |4.0 |536451.0| Off|17:54:00 
+0

thx一噸Kickaha。你能幫我做點什麼嗎? – chloe

+0

我想建立一個直方圖,顯示每次點擊和關閉的點擊次數。 – chloe

+0

我發佈了另一個關於直方圖的問題,如果你可以幫忙嗎? – chloe