Здравствуйте, только начал изучать питон, и столкнулся казалось бы с небольшой проблемой :(
В таблице 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 - нет смысла натравливать на него конструктор еще раз.
Комментариев нет:
Отправить комментарий