我对pandas / python和整体编码还很陌生。因此我遇到了一个关于用熊猫编码列总和的问题。
我有一个关于过去足球比赛成绩的306x7数据框。现在,我想总结每个俱乐部的主队进球数和客场进球数,并将其放入一个新的数据框(18个俱乐部的18行和2个本赛季的进球和离队进球列)。
有人可以给我一个如何进行的想法吗?
teams = Liga2['HomeTeam'].unique()
df = pd.DataFrame(index=teams, columns=['FTHG','FTAG'])
for team in teams:
df.loc[team, 'FTHG'] = [Liga2.HomeTeam == team].FTHG.sum()
df.loc[team, 'FTAG'] = [Liga2.AwayTeam == team].FTHG.sum()
错误:
AttributeError Traceback (most recent call last)
<ipython-input-12-a1b735dbadf3> in <module>
4
5 for team in teams:
----> 6 df.loc[team, 'FTHG'] = [Liga2.HomeTeam == team].FTHG.sum()
7 df.loc[team, 'FTAG'] = [Liga2.AwayTeam == team].FTHG.sum()
AttributeError: 'list' object has no attribute 'FTHG'
这是df:
谢谢你的想法。
答案 0 :(得分:0)
最简单的思考方式(无分组方式)是创建一个唯一的球队名单和一个拥有主场和客场进球的df,然后为每个团队添加主场和客场进球的总数。
groupby
有了# create the groupby sums, where the team name is the index
home = liga2.groupby('HomeTeam').sum()['FTHG']
away = liga2.groupby('AwayTeam')['FTAG'].sum()
# concat them as columns in a df
df = pd.concat( [home, away],axis=1 )
,您所需要做的就是:
ec2:VolumeSize