我有一个dataframe,它在执行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
对于团队中的每个成员,找出旅行的总次数和旅行的总时间。这将返回一个多索引数据帧。在
^{pr2}$期望输出: 我想打印输出,这样一个团队中的所有球员都在同一条线上。在
Team1 Player1 : 2 trips : 19526;
Team2 Player293 : 1 : 17656; Player333 : 1 : 18373;
Team3 Player22 : 1 trip : 17338899; Player20 : 1 trip : 1883
这个question被认为过于宽泛,所以我随意地将pandas数据帧的创建/聚合从输出打印中分离出来。在
使用
groupby()
迭代第0级(团队)。在例如,在第二次迭代中,它将返回
Team2
的数据帧:使用
reset_index()
删除团队索引列,并将player索引列作为dataframe的一部分。在把这个数据帧转换成一个列表列表,这样我们就可以遍历每个播放器。在
打印时,我们必须将整数映射到字符串,并使用print函数的end参数打印分号,而不是在末尾打印新行。在
完整解决方案:
输出:
相关问题 更多 >
编程相关推荐