我有一个 DataFrame 看起来像:
_|a |b |c
x|1 |1 |1
y|2 |2 |3
z|3 |2 |1
我希望结果是:{
1: [(x,a),(x,b),(x,c),(z,c)}
2: [(y,a),(y,b),(z,b)]
3: [(y,c),(z,a)]
}
我不在乎结果是字典还是其他数据框
最佳答案
您可以 stack
然后数据框使用 groupby
里面dict
创建对应于单元格值和索引的键值对的理解:
s = df.stack()
dct = {k: [*g.index] for k, g in s.groupby(s)}
{1: [('x', 'a'), ('x', 'b'), ('x', 'c'), ('z', 'c')],
2: [('y', 'a'), ('y', 'b'), ('z', 'b')],
3: [('y', 'c'), ('z', 'a')]}
关于python - 如何在 Pandas 中获得 "group by"单元格值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65467067/