我有一个包含 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/