異なる時間にプレイされた2つのチーム間のゲームに関する情報を含むパンダデータフレームがあります。
TeamA TeamB Time
1 2 12:06
1 2 13.14
1 3 14.14
1 3 13.14
3 1 15.22
次のようなチームの一意のペアに関する情報のみを含む「サブ」データフレームを取得するための最も簡単な方法(forループを2倍にしない)は何ですか。
(1,2)の場合:
TeamA TeamB Time
1 2 12:06
1 2 13.14
(1,3)の場合:
TeamA TeamB Time
1 3 14.14
1 3 13.14
等。
編集:
データフレームに存在するチームは事前にわかりません。つまり、考えられるすべてのチームのペアにデータフレームが必要です。
作成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
print (dfs[(1,3)])
TeamA TeamB Time
2 1 3 14.14
3 1 3 13.14
すべての値が必要な場合:
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
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加