假设我们有一个表格,其中包含按主题存储在书柜中的书籍数据:
N Shelf1 Shelf2 Shelf3
Case1 Python PHP Python
Case2 Rails R PHP
Case3 PHP Python Python
所以我需要计算我们库中每个主题的书数,如下所示:
Python: 4 books
PHP: 3
R: 1
Rails: 1
有什么建议吗?
答案 0 :(得分:0)
您可以先将数据帧重新整形为“堆叠”记录,然后使用value_counts
功能。
import pandas as pd
# your data
# ===================
print(df)
Out[269]:
N Shelf1 Shelf2 Shelf3
0 Case1 Python PHP Python
1 Case2 Rails R PHP
2 Case3 PHP Python Python
# processing
# ======================================
# make column 'N' as index, stack, then value_counts
df.set_index('N').stack().value_counts()
Out[270]:
Python 4
PHP 3
Rails 1
R 1
dtype: int64
答案 1 :(得分:0)
您可以在ravel
属性上调用values
,该属性返回一个np数组以展平您的df,并从此构造系列并调用value_counts
:
In [42]:
pd.Series(df[['Shelf1','Shelf2','Shelf3']].values.ravel()).value_counts()
Out[42]:
Python 4
PHP 3
Rails 1
R 1
dtype: int64