首页 > 解决方案 > Python Panda Dataframe 计算列表中的特定值

问题描述

假设我有一个清单:

mylist = ['a','b','c']

和一个 Pandas 数据框 (df),它有一个名为“rating”的列。如何在迭代我的列表时获得评分出现次数的计数?例如,这是我需要的:

for item in myList
   # Do a bunch of stuff in here that takes a long time
   # want to do print statement below to show progress
   # print df['rating'].value_counts().a <- I can do this, 
   #     but want to use variable 'item'
   # print df['rating'].value_counts().item <- Or something like this

我知道我可以计算所有不同的“评级”值,但这不是我所追求的。

标签: pythonpandas

解决方案


与其将这个问题视为“从列表到数据框”之一,不如将其翻转过来:

mylist = ['a','b','c']
df = pd.DataFrame({'rating':['a','a','b','c','c','c','d','e','f']})

ValueCounts = df['rating'].value_counts()
ValueCounts[ValueCounts.index.isin(mylist)]

输出:

c    3
a    2
b    1
Name: rating, dtype: int64

推荐阅读