2013-10-25 99 views
1

我報下一個數據幀了2006 colunms在大熊貓拆分列

data=read_csv('enero.csv') 
data 

      Fecha   DirViento MagViento 
0 2011/07/01 00:00  318  6.6  
1 2011/07/01 00:15  342  5.5   
2 2011/07/01 00:30  329  6.6   
3 2011/07/01 00:45  279  7.5   
4 2011/07/01 01:00  318  6.0   
5 2011/07/01 01:15  329  7.1   
6 2011/07/01 01:30  300  4.7   
7 2011/07/01 01:45  291  3.1   

如何在兩列列出生日期拆分,例如,得到一個數據幀如下:

 Fecha  Hora  DirViento MagViento 
0 2011/07/01 00:00  318  6.6  
1 2011/07/01 00:15  342  5.5   
2 2011/07/01 00:30  329  6.6   
3 2011/07/01 00:45  279  7.5   
4 2011/07/01 01:00  318  6.0   
5 2011/07/01 01:15  329  7.1   
6 2011/07/01 01:30  300  4.7   
7 2011/07/01 01:45  291  3.1 

我正在使用熊貓來讀取數據

我嘗試從每月數據庫計算每日平均值,每15分鐘記錄一次每日數據。要做到這一點,利用熊貓和分組的列:日期和時間爲得到一個數據幀如下:

Fecha Hora 
2011/07/01 00:00 -4.4 
      00:15 -1.7 
      00:30 -3.4 
2011/07/02 00:00 -4.5 
      00:15 -4.2 
      00:30 -7.6 
2011/07/03 00:00 -6.3 
      00:15 -13.7 
      00:30 -0.3 

這一下,我得到以下

grouped.mean()                   

Fecha  DirRes 
2011/07/01 -3 
2011/07/02 -5 
2011/07/03 -6 
+0

這沒有回答我的問題。 – aIKid

+1

將Fecha作爲實際的日期時間對象是不是更好?將parse_dates = ['Fecha']傳遞給read_csv。 –

+0

我同意@AndyHayden,你可以傳遞給'read_csv'一個'parse_dates'參數,這將讀取字符串並嘗試解析它爲一個日期時間,就像這樣:'data = read_csv('enero.csv',parse_dates = ['日期星'])' – EdChum

回答

4

這裏是一個link到相當以前已經回答過的類似問題,希望對您有所幫助。在你的情況下,你可以通過空格分割Fecha中的內容並構建字符串第二部分的列表。然後將內容添加到插入的新列

import pandas as p 
t = p.read_csv('test2.csv') 

#store into a data frame 
df = p.DataFrame(t) 


#update the fecha col value and create new col hora 
lista = [item.split(' ')[2] for item in df['Fecha']] 
listb = p.Series([item.split(' ')[0] for item in df['Fecha']]) 
df['Fecha'].update(listb) 
df['Hora'] = lista 

#change Hora position 
#I am not sure whether this is efficient or not 
#as I am also quite new to Pandas 
col = df.columns.tolist() 
col = col[-1:]+col[:-1] 
col[0], col[1] = col[1], col[0] 

df = df[col] 

print df 

希望這可以解決您的問題,這裏是輸出。

 Fecha Hora DirViento MagViento 
0 2011/07/01 00:00  318  6.6 
1 2011/07/01 00:15  342  5.5 
2 2011/07/01 00:30  329  6.6 
3 2011/07/01 00:45  279  7.5 
4 2011/07/01 01:00  318  6.0 
5 2011/07/01 01:15  329  7.1 
6 2011/07/01 01:30  300  4.7 
7 2011/07/01 01:45  291  3.1