带有Pandas Dataframe的数据透视表(?)

时间:2016-04-07 12:10:24

标签: python pandas

我有一个与此类似的DataFrame

id    name    value
a     Adam    5
b     Eve     6
c     Adam    4
a     Eve     3
d     Seth    2
b     Adam    4
a     Adam    2

我正在尝试查看有多少id与多少名称及其重叠相关联。我在id列上做了一个groupby,然后我可以看到有多少个id有多少个与之关联的名字。

df.groupby('id')['name'].nunique().value_counts()

我现在想要的是获取名称为列名的表的方法,索引是id,值是每个id和名称的总和。我可以通过初始化一个DataFrame来进行for循环,其中列是name列中的值,但我想知道是否有一个pandas方法来完成这样的事情?

1 个答案:

答案 0 :(得分:2)

是你想要的吗?

In [54]: df.pivot_table(index='id', columns='name', values='value', aggfunc='sum')
Out[54]:
name  Adam  Eve  Seth
id
a      7.0  3.0   NaN
b      4.0  6.0   NaN
c      4.0  NaN   NaN
d      NaN  NaN   2.0

或没有NaN'

In [56]: df.pivot_table(index='id', columns='name', values='value', aggfunc='sum', fill_value=0)
Out[56]:
name  Adam  Eve  Seth
id
a        7    3     0
b        4    6     0
c        4    0     0
d        0    0     2