2016-01-20 127 views
1

我有2列的數據幀尋找列組的最大,由另一列熊貓

count percent grpno. 
0   14.78  1 
1   0.00  2 
2   8.80  3 
3   9.60  4 
4   55.90  4 
5   0.00  2 
6   0.00  6 
7   0.00  5 
8   6.90  1 
9   59.00  4 

我需要通過柱得到的列「計數%的 」和組的最大「grpno。」。雖然我試圖通過

geostat.groupby(['grpno.'], sort=False)['count percent'].max() 

做同樣的我得到的輸出是

grpno. 
1 14.78 
2  0.00 
3  8.80 
4 59.00 
6  0.00 
5  0.00 
Name: count percent, dtype: float64 

但我需要輸出是具有修改爲「MaxOfcount%的」和「grpno列名稱的數據幀。 「任何人都可以幫忙嗎?由於

回答

4
res = df.groupby('grpno.')['count percent'].max().reset_index() 
res.columns = ['grpno.', 'MaxOfcount percent'] 

    grpno. MaxOfcount percent 
0  1    14.78 
1  2    0.00 
2  3    8.80 
3  4    59.00 
4  5    0.00 
5  6    0.00 

你也能做到這一點的一條線:

res = df.groupby('grpno.', as_index=False)['count percent'].max().rename(columns={'count percent': 'MaxOfcount percent'}) 
0

你可以使用groupby用爭論as_index=False

In [119]: df.groupby(['grpno.'], as_index=False)[['count percent']].max() 
Out[119]: 
    grpno. count percent 
0  1 14.78 
1  2  0.00 
2  3  8.80 
3  4 59.00 
4  5  0.00 
5  6  0.00 

df1 = df.groupby(['grpno.'], as_index=False)[['count percent']].max() 
df1.columns = df1.columns[:-1].tolist() + ['MaxOfcount percent'] 

In [130]: df1 
Out[130]: 
    grpno. MaxOfcount percent 
0  1    14.78 
1  2    0.00 
2  3    8.80 
3  4    59.00 
4  5    0.00 
5  6    0.00