[英]Grouping the values of all columns by index of a pandas dataframe
我想基本建立總分配。 用戶觀看的視頻數量。 監視用1否則0表示。用戶是數據幀的索引。
假設數據是這樣的:
A B C
User1 1 1 0
User2 0 1 0
User3 1 0 1
我希望每次使用該行中所有1的計數。
我正在做這樣的事情,但似乎沒有用。 我不想使用某些applymap函數,因為這似乎很慢。
d.groupby(d.index).sum(axis=1)
給出軸無法識別的錯誤
如果索引中有重復項,則可以將groupby
與double sum
一起使用:
print (df)
A B C
User1 1 1 0
User1 1 1 1
User2 0 1 0
User3 1 0 1
print (df.groupby(df.index).sum().sum(1))
User1 5
User2 1
User3 2
dtype: int64
如果沒有重復項,請僅使用sum
-Psidom注釋 :
df.sum(axis=1)
編輯:
import matplotlib.pyplot as plt
df.sum(axis=1).plot.hist()
plt.show()
使用DataFrame的轉置方法。
In [38]: d = pd.DataFrame({'A':[1,0,1],'B':[1,1,0],'C':[0,0,1]},index=['User1','User2','User3'])
In [39]: d
Out[39]:
A B C
User1 1 1 0
User2 0 1 0
User3 1 0 1
In [40]: d.transpose()
Out[40]:
User1 User2 User3
A 1 0 1
B 1 1 0
C 0 0 1
In [41]: d.transpose().sum()
Out[41]:
User1 2
User2 1
User3 2
dtype: int64
或者,按照Psidom的建議,對DataFrame的列求和。
In [55]: d.sum(axis=1)
Out[55]:
User1 2
User2 1
User3 2
dtype: int64
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.