【问题标题】:I'm trying to get the max games, wins and lost played for each team我正在努力为每支球队获得最多的比赛,输赢
【发布时间】:2020-11-06 18:56:44
【问题描述】:

这是我正在尝试编辑的 CSV 文件的示例,您可以看到 L.A. Lakers 在第一行出现两次,在第 15 行再次出现。 我想做的是球队的详细信息,包括每支球队的最终比赛数量、输赢情况。 G 代表 csv 文件中的比赛,W 赢,L 输。

我的进口

import pandas as pd
import numpy as np

读取和排序文件

ranking = pd.read_csv("ranking.csv")
sortedranks = ranking.sort_values(["SEASON_ID"], ascending=False)

获得 2019 年的排名并删除重复但不起作用

rank19 = sortedranks[sortedranks.SEASON_ID == 22019]
rank19.drop_duplicates(subset="G", keep = False, inplace = True)

【问题讨论】:

  • 此数据似乎没有重复。你有两个湖人队的条目,但每行的输赢总数不同。
  • 哦,那我可以得到每个团队的最终记录,就像其他团队一样。
  • @JamesTollefson
  • 您的意思是您想保留ROAD_RECORD 日期之后的记录吗?或者你说的最终记录是什么意思?从你的描述看不清楚。
  • @kate-melnykova 很抱歉,我正在努力为每支球队赢得最后一场比赛,输赢

标签: python pandas csv data-analysis


【解决方案1】:

将您的DataFrame 分组可以为您完成工作。我将演示如何使用您的数据的简化版本:

import pandas as pd

data = {
        'Team':['L.A. Lakers', 'Denver', 
                'Houston', 'Utah', 'Oklahoma', 
                'L.A. Lakers', 'Dallas'],
        'G':[59,60,59,59,60,58,60],
        'W':[46,41,39,37,37,45,36],
        'L':[13,19,20,22,23,13,24],
        }

df = pd.DataFrame(data)
print(df)

输出:

          Team   G   W   L
0  L.A. Lakers  59  46  13
1       Denver  60  41  19
2      Houston  59  39  20
3         Utah  59  37  22
4     Oklahoma  60  37  23
5  L.A. Lakers  58  45  13
6       Dallas  60  36  24

现在我可以使用 groupby 并按最大值聚合:

grouped = df.groupby('Team')[['G', 'W', 'L']].agg('max')
print(grouped)

输出:

              G   W   L
Team                   
Dallas       60  36  24
Denver       60  41  19
Houston      59  39  20
L.A. Lakers  59  46  13
Oklahoma     60  37  23
Utah         59  37  22

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-12-27
    • 1970-01-01
    相关资源
    最近更新 更多