Я пытаюсь сделать эквивалент функции 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']
Вот пример простого рецепта "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)
Если все остальное не удается, почему бы не попробовать что-то подобное?
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()
value_counts
. Попробуйтеdf.col.value_counts().loc[1]