2013-07-30 195 views
3

我一直在閱讀有關熊貓數據框中的分層索引和多索引,但似乎這些都是有序標籤。例如,我的數據是這樣的:根據熊貓數據框中的列標籤分組數據

enter image description here

而且我想要的數據一起基於列標籤即能組。通過平均值將第3行中'd'的所有列聚合在一起。

是什麼讓這個Excel數據的最佳方式(或csv如果絕對需要)到一個數據幀,這樣我可以做這些操作,我將如何去這樣做呢?

任何意見或引用,將不勝感激

編輯

我嘗試使用下面的命令加載從CSV數據:

data = pd.read_csv('Dataset.csv', index_col=0, header=[0,1,2,3], parse_dates=True) 

這給了我這個加載時:

<class 'pandas.core.frame.DataFrame'> 
DatetimeIndex: 18 entries, 2013-05-27 10:31:00 to 2013-07-24 11:31:00 
Data columns (total 40 columns): 
(1, mix, d, n)  18 non-null values 
(2, aq, s, n)  18 non-null values 
(3, gr, s, n)  18 non-null values 
(4, mix, d, n)  18 non-null values 
(5, aq, d, n)  17 non-null values 

我只是不確定從那裏去哪裏。

+0

你在哪裏讀的數據? Excel文件或CSV?如果是這樣,請在Python中查看CSV模塊。 – Oz123

+0

我最好希望從excel中讀取,但我確實想轉換成csv,然後將標題設置爲我想要分組的行,但我不知道該從哪裏去。我將添加一個編輯並向您展示我的意思。 – pbreach

+0

你有沒有嘗試'數據['3']'就像10分鐘。教程顯示? – Oz123

回答

4

您可以使用逐列(axis=1groupby並採取mean

In [11]: df = pd.DataFrame(np.random.randn(4, 3), columns=[[1, 2, 3], ['d', 's', 'd']]) 

In [12]: df.columns.names = ['PLOT', 'DEPTH'] 

In [13]: df 
Out[13]: 
PLOT   1   2   3 
DEPTH   d   s   d 
0  -0.557490 -1.231495 -0.333703 
1  0.513394 1.046577 0.596306 
2  -0.404606 -1.615080 -0.694562 
3  -0.078497 -0.683405 0.056857 

In [14]: df.groupby(level='DEPTH', axis=1).mean() 
Out[14]: 
DEPTH   d   s 
0  -0.445596 -1.231495 
1  0.554850 1.046577 
2  -0.549584 -1.615080 
3  -0.010820 -0.683405 
+0

這正是我想要做的!我之前做了一些變化,但沒有按照正確的方式去做。謝謝! – pbreach