2016-01-27 131 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