2016-01-27 164 views
0

與組加入我有2個dataframes命名GEOSTAT和REF時,dataframes如下:。內通過大熊貓蟒

geostat: 
     count percent grpno. state code 
0   14.78  1   CA 
1   0.00  2   CA 
2   8.80  3   CA 
3   9.60  4   FL 
4   55.90  4   MA 
5   0.00  2   FL 
6   0.00  6   NC 
7   0.00  5   NC 
8   6.90  1   FL 
9   59.00  4   MA 
res: 
    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.Maxofcount百分比),res.grpno,和geostat.first(statecode)從數據幀geostat和res內部聯接的列res.Maxofcount percent = geostat.count percent AND res。 grpno。 = geostat.grpno。通過res.grpno分組。

我想做這個python熊貓,我不知道如何做內部加入group by。任何人都可以幫助我嗎?

FirstOfMaxOfState count percent state pool number FirstOfstate code 
0       14.78     1    CA 
1        0.00     2    CA 
2        8.80     3    CA 
3       59.00     4    MA 
4        0.00     5    NC 
5        0.00     6    NC 

注:

輸出數據框下面給出FIRST(列名)就是應在相當於蟒它的訪問功能?

EDITED:更改了輸出數據幀。

+0

請出示預期的輸出,因爲目前還不清楚你想要做什麼。 –

+0

如何使用2個不同的列名進行2個數據幀的內連接? – User1090

+0

再次,請發佈您想要的預期輸出,以便您可以幫助我們幫助您。 –

回答

1

使用pandas.DataFrame.merge()

geostat.merge(res, left_on=['count percent', 'grpno.'], right_on=['MaxOfcount percent', 'grpno.'],how='inner') 

    count percent grpno. state code MaxOfcount percent 
0   14.78  1   CA    14.78 
1   0.00  2   CA    0.00 
2   0.00  2   FL    0.00 
3   8.80  3   CA    8.80 
4   0.00  6   NC    0.00 
5   0.00  5   NC    0.00 
6   59.00  4   MA    59.00 
+0

感謝Stefan,現在我想在結果數據框上對狀態碼進行分組?獲得'MaxOfcount百分比'和'grpno'的第一名。和第一個(狀態碼)? – User1090

+0

什麼是錯誤? – Stefan

+0

我設法由grpno分組。並通過使用下面的代碼獲得count的第一個百分比:geostat_query_query = geomerge.groupby('grpno。')['count percent']。first()。reset_index()如何獲得第一個statecode在同一行碼?? – User1090