【发布时间】:2016-04-05 00:57:32
【问题描述】:
我有一个数据帧,在执行groupby() 和aggregation 之后转换为多索引数据帧。
In[1]:
mydata = [['Team1', 'Player1', 'idTrip13', 133], ['Team2', 'Player333', 'idTrip10', 18373],
['Team3', 'Player22', 'idTrip12', 17338899], ['Team2', 'Player293','idTrip02', 17656],
['Team3', 'Player20', 'idTrip11', 1883], ['Team1', 'Player1', 'idTrip19', 19393]]
df = pd.DataFrame(mydata, columns = ['team', 'player', 'trips', 'time'])
df
Out[1]:
team player trips time
0 Team1 Player1 idTrip13 133
1 Team2 Player333 idTrip10 18373
2 Team3 Player22 idTrip12 17338899
3 Team2 Player293 idTrip02 17656
4 Team3 Player20 idTrip11 1883
5 Team1 Player1 idTrip19 19393
对于团队中的每个玩家,找出旅行的总次数和旅行所花费的总时间。这将返回一个 multiIndex 数据帧。
player_total = df.groupby(by = ['team', 'player']).agg({'time' : 'sum', 'trips' : 'count'})
player_total
Out[4]:
trips time
team player
Team1 Player1 2 19526
Team2 Player293 1 17656
Player333 1 18373
Team3 Player20 1 1883
Player22 1 17338899
所需的输出: 我想打印输出,使团队中的所有玩家都在同一行。
Team1 Player1 : 2 trips : 19526;
Team2 Player293 : 1 : 17656; Player333 : 1 : 18373;
Team3 Player22 : 1 trip : 17338899; Player20 : 1 trip : 1883
这个question 被认为过于宽泛,所以我冒昧地将 pandas 数据框的创建/聚合从输出打印中分离出来。
【问题讨论】: