python 值计数不适用于Pandas中的列过滤器

rpppsulh  于 2022-10-30  发布在  Python
关注(0)|答案(2)|浏览(155)

每个人我都试图计算一列中回答“是”的人数,这取决于另一个前一列的答案,以生成饼图,所以我遇到了问题,因为它给我布尔值计数,如下图所示,(这是我的代码行):

answers = ['Yes']
hello = (df['Are you okay?']== 'No') &(df['Are yu sad?'].isin(answers))

其实我只希望结果会是这样的:

Yes 
110

编辑:
这是我的结果红色的是我想要的

wbgh16ku

wbgh16ku1#

如果需要布尔掩码的计数值,则使用sum来处理True

answers = ['Yes']
hello = (df['Are you okay?']== 'No') &(df['Are yu sad?'].isin(answers))

df = pd.DataFrame({answers[0]: hello.sum()})

如果ned根据条件df['Are you okay?']== 'No'Are yu sad?列进行计数,则用途:

df1 = (df.loc[df['Are you okay?']== 'No', 'Are yu sad?']
         .value_counts()
         .rename_axis('Vals')
         .reset_index(name='Count'))
mrphzbgm

mrphzbgm2#

hello在本例中是一个布尔值数组。将该数组应用于原始 Dataframe 。

answers = ['Yes']
hello = df[(df['Are you okay?']== 'No') &(df['Are yu sad?'].isin(answers))]

然后应用hello.value_counts()

相关问题