计算python中特定列的数字出现次数

时间:2018-09-28 19:40:17

标签: python pandas

我正在尝试在excel中做一个COUNTIF()函数的等效项。我被困在如何告诉.count()函数从excel的特定列中读取内容。

我有

df = pd.read_csv('testdata.csv')    
df.count('1') 

但是这行不通,即使这样做也不够具体。 我想我可能必须使用read_csv来分别读取特定的列。

示例:

Column name
4
4
3
2
4
1

该函数将输出一个“ 1”,我可以再次运行它,发现有三个“ 4”答案。等

我成功了!谢谢

我用过:

print (df.col.value_counts().loc['x']

2 个答案:

答案 0 :(得分:0)

如果其他所有方法都失败了,为什么不尝试这样的事情呢?

import numpy as np
import pandas
import matplotlib.pyplot as plt

df = pandas.DataFrame(data=np.random.randint(0, 100, size=100), columns=["col1"])

counters = {}
for i in range(len(df)):
    if df.iloc[i]["col1"] in counters:
        counters[df.iloc[i]["col1"]] += 1
    else:
        counters[df.iloc[i]["col1"]] = 1

print(counters)
plt.bar(counters.keys(), counters.values())
plt.show()

答案 1 :(得分:0)

以下是您可以尝试的简单“ countif”食谱的示例:

import pandas as pd

def countif(rng, criteria):
    return rng.eq(criteria).sum()

示例用法

df = pd.DataFrame({'column1': [4,4,3,2,4,1],
                   'column2': [1,2,3,4,5,6]})
countif(df['column1'], 1)