【发布时间】:2017-06-11 14:30:48
【问题描述】:
我有一个以人名作为索引的数据框(可以有多个条目)和两列“X”和“Y”。 'X' 和 'Y' 列可以是 A-C 之间的任何字母。
例如:
df = pd.DataFrame({'X' : ['A', 'B', 'A', 'C'], 'Y' : ['B', 'A', 'A', 'C']},index = ['Bob','Bob','John','Mike'])
对于每个人(即索引),我想获取列“X”和“Y”的每个唯一组合的出现次数(例如 - 对于 Bob,我有 1 个计数('A','B ') 和 1 个计数 ('B','A'))。
当我执行以下操作时:
df.loc['Bob'].groupby(['X','Y']).size()
我得到了 Bob 的正确结果。如果没有 oop,我怎样才能为每个人做到这一点? 理想情况下,我会得到一个数据框,其中不同的人作为索引,列“X”和“Y”的每个唯一组合作为列,并将它在数据框中出现的次数作为值。
('A','A') ('A','B') ('A','C') ('B','A') ... ('C','C')
Bob 0 1 0 1 0
John 1 0 0 0 0
Mike 0 0 0 0 1
【问题讨论】: