python - 从 DataFrame 行中选择变量组合

标签 python pandas dataframe pandas-groupby

我有一个包含 4 个属性的 DataFrame,每个属性包含 2 个变量。 {'A':[A1,A2],'B':[B1,B2],'C':[C1,C2],'D':[D1,D2]}

我的输入数据框如下所示:

Date     A    B    C    D
  J1    A1   B1   C1   D1
  J1    A1   B2   C2   D1
  J1    A2   B2   C2   D2
  J1    A2   B1   C1   D2
  J2    A2   B1   C1   D2
  J2    A1   B1   C1   D1

所需的输出: 4 个 DataFrame 每个都包含唯一的变量组合(无论日期值是什么)。

输出1:组合A1、B1、C1、D1

Date     A    B    C    D
  J1    A1   B1   C1   D1
  J2    A1   B1   C1   D1

输出2:组合A1、B2、C2、D1

Date     A    B    C    D
  J1    A1   B2   C2   D2

输出3:组合A2、B2、C2、D2

Date     A    B    C    D
  J1    A2   B2   C2   D2

输出4:组合A2、B1、C1、D2

Date     A    B    C    D
  J1    A2   B1   C1   D2
  J2    A2   B1   C1   D2

最佳答案

使用字典来存储可变数量的变量。在这种情况下,您可以使用groupby来提取您的唯一组:

res = {i: j[1] for i, j in enumerate(df.groupby(['A', 'B', 'C', 'D']), 1)}

print(res)

{1:   Date   A   B   C   D
    0   J1  A1  B1  C1  D1
    5   J2  A1  B1  C1  D1,

 2:   Date   A   B   C   D
    1   J1  A1  B2  C2  D1,

 3:   Date   A   B   C   D
    3   J1  A2  B1  C1  D2
    4   J2  A2  B1  C1  D2,

 4:   Date   A   B   C   D
    2   J1  A2  B2  C2  D2}

关于python - 从 DataFrame 行中选择变量组合,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51087155/

相关文章:

python - 如何在 Python 3 中 pickle os.environ?

python - BeautifulSoup 模块未检测到任何标签

python - 检查 Pandas 中的csv文件是否为空

python - 在数据帧连接时保留分类数据类型

r - 熔化数据框并将列中的值粘贴在一起

python读取带有行号的多列tsv文件

python - 欧拉计划 #17 略微偏离

python Pandas 。删除其值包含在同一列的另一个单元格中的单元格

python - 在 Pandas 中分组

R:如何根据符号拆分特定列?