根据唯一对值过滤pandas数据帧

2024-09-28 19:32:36 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个熊猫数据框架,其中包含两支球队在不同时间进行比赛的信息:

^{1}$

获取“sub”数据帧的最简单方法是什么(而不是double for loop),如:

对于(1,2):

^{pr2}$

对于(1,3):

TeamA   TeamB   Time

1   3   14.14
1   3   13.14

等等

编辑

我事先不知道数据框中的团队。也就是说,我需要为每一对可能的团队提供一个数据框架。在


Tags: 数据方法框架loop信息编辑fortime
1条回答
网友
1楼 · 发布于 2024-09-28 19:32:36

创建dictionary of DataFrames

dfs = dict(tuple(df.groupby(['TeamA','TeamB'])))
print (dfs[(1,2)])
   TeamA  TeamB   Time
0      1      2  12:06
1      1      2  13.14

^{pr2}$

如果需要所有值:

for i, x in dfs.items():
    print (x)
   TeamA  TeamB   Time
0      1      2  12:06
1      1      2  13.14
   TeamA  TeamB   Time
2      1      3  14.14
3      1      3  13.14
   TeamA  TeamB   Time
4      3      1  15.22

如果想要同一组中的最后一行:

cols = ['TeamA','TeamB']
a = df[cols].apply(sorted, 1)
dfs = dict(tuple(df.groupby([a[cols[0]], a[cols[1]]])))

for i, x in dfs.items():
    print (x)
   TeamA  TeamB   Time
0      1      2  12:06
1      1      2  13.14

   TeamA  TeamB   Time
2      1      3  14.14
3      1      3  13.14
4      3      1  15.22

相关问题 更多 >