使用另一列进行分组,以防有两行的最大数量在列中。

问题描述 投票:0回答:1

我有一个 csv文件,包含了过去50年的游戏信息. 所以我应该检查积分栏,但如果有两支球队的最大积分相同,我应该检查进球数差异。

df3=pd.DataFrame(df_laliga.groupby('season')[['points']].max(axis=1).reset_index())
result=pd.merge(df3,df_laliga,how='inner',on=['points','season'])
result=result[['season','club']].set_index('season')
del result.index.name

结果是这样的格式

enter image description here

2006-07赛季两队积分相同,有两队。我用下面的方法试了一下,但问题没有给我正确的结果。

df3=pd.DataFrame(df_laliga.groupby('season')[['points','goal_difference']].max(axis=1).reset_index())      

原始数据。

enter image description here

enter image description here

python pandas dataframe max pandas-groupby
1个回答
0
投票

好了,这可以很容易地完成使用pandasql。你可以做这样的事情。

!pip install pandasql

import pandasql

query = """
        SELECT
          season,
          club
        FROM
          (SELECT
            season,
            club,
            points,
            goal_difference
          FROM
            df_laliga
          ORDER BY
            season,
            points,
            goal_difference)
        GROUP BY
          season
        """

result = pandasql.sqldf(query)

result
© www.soinside.com 2019 - 2024. All rights reserved.