[英]pivot table(?) with a Pandas Dataframe
我有一個類似於此的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循環,在此DataFrame中,列是name列中的值,但是我想知道是否有熊貓方式來完成這樣的事情?
那是你要的嗎?
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
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.