Подсчет вхождений числа из определенного столбца в Python

1

Я пытаюсь сделать эквивалент функции COUNTIF() в excel. Я застрял в том, как сообщить функции.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']
  • 3
    Вероятно, ищет value_counts . Попробуйте df.col.value_counts().loc[1]
  • 0
    Я думаю, что это то, что я искал, но я получил сообщение об ошибке: объект DataFrame не имеет атрибута «col».
Показать ещё 9 комментариев
Теги:
pandas

2 ответа

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)
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()

Ещё вопросы

Сообщество Overcoder
Наверх
Меню