python - 使用 pandas 为每个组创建一个组合 DataFrame

标签 python pandas

输入如下。

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/

相关文章:

Python 模拟 MatLab 数据结构

python - Django 模板 - 在哪里编码以查找此特定模板?

python - 在 python 上绘制带有颜色的特征时获取 `ValueError`

Python - NumPy.Where 与字典

python - 如何获得python中字符串出现的次数?

python - 如何从 Python 中的邻接矩阵创建边列表数据框?

python - pytorch中张量的df.mask之类的类似功能吗?

python - 如果指定用户名,为什么我的 getopts 会失败?

numpy - 简单的多维 numpy ndarray 到 pandas 数据框方法?

python - 选择至少 x 列高于平均水平的行