Страницы

Поиск по вопросам

понедельник, 8 июля 2019 г.

Python: необходимо посчитать в excel таблице количество какого либо одного элемента

Здравствуйте, только начал изучать питон, и столкнулся казалось бы с небольшой проблемой :( В таблице 24 колонок по 50 строк, данные в виде цифр от 1 до 5, надо посчитать количество пятерок, четверок и т.д. в каждой колонке. Взял пока parser_cols B, а так надо по всем читать, для начала найти бы сколько встречается пятерок. Через Counter тоже делал, но не считает. Есть мнение, что поможет конвертировать df в list, но получается только в словарь.
file = pd.read_excel('file.xlsx', sheetname = '1', header = None, na_values=['NaN'], parse_cols = "B")
df = pd.DataFrame(file) df.head()
five = [] for x in (df1course): five.count(5) print(x, five)
Прошу помочь и указать на ошибки :)


Ответ

Вот пример для DataFrame размером 10 x 10:
Создаем "sample DF" (вам этого делать не надо - вы его уже прочитали из Excel файла):
In [44]: df = pd.DataFrame(np.random.randint(1, 6, size=(10, 10)))
In [45]: df Out[45]: 0 1 2 3 4 5 6 7 8 9 0 5 2 5 5 3 4 1 5 3 2 1 5 5 1 4 4 4 5 3 4 4 2 4 1 1 2 1 4 2 1 1 5 3 2 1 1 3 3 2 4 2 5 1 4 3 1 2 2 3 5 3 5 3 5 5 5 2 5 2 4 2 2 3 4 1 6 2 5 1 3 5 2 3 2 2 3 7 2 1 2 2 4 5 1 1 5 5 8 5 1 2 2 2 1 3 5 5 3 9 2 1 4 5 3 1 2 4 3 2
Считаем кол-во уникальных значений в каждом столбце при помощи метода Series.value_counts(). df.apply(...) - применяет указанную функцию к каждому столбцу:
In [46]: df.apply(pd.value_counts) Out[46]: 0 1 2 3 4 5 6 7 8 9 1 NaN 6.0 4.0 NaN 1 2.0 2 2 1 2 2 4.0 2.0 3.0 5.0 1 3.0 3 2 1 2 3 1.0 NaN NaN 2.0 4 NaN 3 2 3 2 4 1.0 NaN 1.0 1.0 3 3.0 1 1 2 1 5 4.0 2.0 2.0 2.0 1 2.0 1 3 3 3
Разбор ошибок:
pd.read_excel() - уже возвращает DataFrame - нет смысла натравливать на него конструктор еще раз.

Комментариев нет:

Отправить комментарий