【发布时间】:2016-04-11 02:46:09
【问题描述】:
受this 帖子的启发,我想在每个分组中获取数据框中的值的不同计数,并使用数据框中的不同计数值创建一列。 像这样:
原始数据框:
import pandas as pd
df = pd.DataFrame(
{'A' : ['foo', 'foo', 'foo', 'foo',
'bar', 'bar', 'bar', 'bar'],
'B' : ['foo', 'fo', 'foo', 'foo',
'bar', 'bar', 'ba', 'ba'],
'C' : [2, 4, 4, 2, 5, 4, 3, 2]})
df
A B C
0 foo foo 2
1 foo fo 4
2 foo foo 4
3 foo foo 2
4 bar bar 5
5 bar bar 4
6 bar ba 3
7 bar ba 2
应用链接帖子的方法:
df=df.groupby(['A','B'])['C'].apply(lambda x: len(x.unique()))
df
每个链接发布方法的结果:
A B
bar ba 2
bar 2
foo fo 1
foo 2
Name: C, dtype: int64
想要的结果:
A B C Distinct Count of C per A and B
0 foo foo 2 2
1 foo fo 4 1
2 foo foo 4 2
3 foo foo 2 2
4 bar bar 5 2
5 bar bar 4 2
6 bar ba 3 2
7 bar ba 2 2
查看第一行,“A”中的“foo”和“B”中的“foo”的组合有 2 个与之关联的唯一值(2 和 4),因此该组合的每一行中都有一个 2列 A 和 B 的值。
提前致谢!
【问题讨论】:
标签: python-3.x pandas