Python:如何计算数据框中特定列中的特定值

标签 python pandas dataframe count

我有一个特定的 csv,例如:

col1 col2 col3 col4

a    1    2     3

b    1    2     1 

c    1    1     3

d    3    1     2 

我想计算特定值的数量,例如。 1 在 col2、col3 和 col4 中

我正在使用 pandas 使用以下代码

import pandas as pd

fname = input('Enter the filename:')
df = pd.read_csv (fname, header='infer')
one = df.iloc[:,1:4].value_counts(normalize=False).loc[1]

它显示错误,但是当我对特定定义的列执行相同操作时,代码运行正常

import pandas as pd
fname = input('Enter the filename:')
df = pd.read_csv (fname, header='infer')
one = df[col1].value_counts(normalize=False).loc[1]

我想要以下输出

col2 3

col3 2

col4 1

任何帮助或提示将不胜感激!先感谢您。 :)

最佳答案

使用eq具有所需值,即 1,然后 sum 为:

df1[['col2', 'col3', 'col4']].eq(1).sum()

col2    3
col3    2
col4    1
dtype: int64

关于Python:如何计算数据框中特定列中的特定值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52424603/

相关文章:

python - 根据 Pandas 中的前后行计算一行中的值

Python - 日期格式

python - 使用 pandas 创建新列时的条件分割

python - Pandas groupby 索引 : discard entire group if condition is not met

python - 将数组列表转换为 Pandas 数据框

python - 如何将多个groupby聚合与计算列结合起来?

python - 使用 Pandas 用连续值和以上行填充行

python - opencv从哪里来的spyder

python - 如何使用包含额外数据的 Gzip 文件?

python - 如何将 Pandas 中的非零条目转换为带列表的字典?