输入如下。
Out[178]:
group value
0 A a
1 A b
2 A c
3 A d
4 B c
5 C d
6 C e
7 C a
对于此输入,我想为每个组创建一个组合并创建一个 DataFrame。我该怎么做?
我想要得到的输出:
Out[180]:
group 0 1
0 A a b
1 A a c
2 A a d
3 A b c
4 A b d
5 A c d
0 C d e
1 C d a
2 C e a
最佳答案
在理解中使用组合
from itertools import combinations
pd.DataFrame([
[n, x, y]
for n, g in df.groupby('group').value
for x, y in combinations(g, 2)
], columns=['group', 0, 1])
group 0 1
0 A a b
1 A a c
2 A a d
3 A b c
4 A b d
5 A c d
6 C d e
7 C d a
8 C e a
关于python - 使用 pandas 为每个组创建一个组合 DataFrame,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49270966/