Уведомления

Группа в Telegram: @pythonsu

#1 Сен. 12, 2021 12:42:59

VeRaNiKa
Зарегистрирован: 2021-09-12
Сообщения: 1
Репутация: +  0  -
Профиль   Отправить e-mail  

Работа с экселем

Приветик!
Разбиралась с библиотекой pandas, появились некоторые вопросики
Мне нужно было узнать сколько уникальных значений есть в таблице.

 a = pd.read_excel('222222.xlsx')
print(a)
a['1'].value_counts()
print(a) показывает это:

1 21 22 34 47
0 1 4 11 59 67
1 1 5 29 54 62
2 1 12 17 39 53
3 1 19 20 38 54
4 1 6 22 42 61
.. .. .. .. .. ..
81 34 38 42 61 62
82 35 36 47 61 63
83 35 36 51 55 61
84 40 53 60 68 69
85 44 52 54 64 69
Значит, название столбиков это ‘1’ ‘21’ ‘22’ ‘34’ ‘47’
однако a.value_counts() выдаёт ошибку:
Traceback (most recent call last):

File “C:\ProgramData\Anaconda3\lib\site-packages\pandas\core\indexes\base.py”, line 3080, in get_loc
return self._engine.get_loc(casted_key)

File “pandas\_libs\index.pyx”, line 70, in pandas._libs.index.IndexEngine.get_loc

File “pandas\_libs\index.pyx”, line 98, in pandas._libs.index.IndexEngine.get_loc

File “pandas\_libs\index_class_helper.pxi”, line 89, in pandas._libs.index.Int64Engine._check_type

KeyError: ‘1’


The above exception was the direct cause of the following exception:

Traceback (most recent call last):

File “C:\Users\NiKa\.spyder-py3\task.py”, line 31, in <module>
a.value_counts()

File “C:\ProgramData\Anaconda3\lib\site-packages\pandas\core\frame.py”, line 3024, in __getitem__
indexer = self.columns.get_loc(key)

File “C:\ProgramData\Anaconda3\lib\site-packages\pandas\core\indexes\base.py”, line 3082, in get_loc
raise KeyError(key) from err

KeyError: ‘1’
Я подумала, что ему не нравится цифра в названии столбца, и сделала так:
 b = pd.DataFrame(task, columns = ['One', 'Two', 'Three', 'Four', 'Five'])
print(b)
Однако теперь выводит такое:
One Two Three Four Five
0 NaN NaN NaN NaN NaN
1 NaN NaN NaN NaN NaN
2 NaN NaN NaN NaN NaN
3 NaN NaN NaN NaN NaN
4 NaN NaN NaN NaN NaN
.. … … … … …
86 NaN NaN NaN NaN NaN
87 NaN NaN NaN NaN NaN
88 NaN NaN NaN NaN NaN
89 NaN NaN NaN NaN NaN
90 NaN NaN NaN NaN NaN
Что происходит и что делать?

Офлайн

#2 Сен. 12, 2021 14:08:06

doza_and
От:
Зарегистрирован: 2010-08-15
Сообщения: 4138
Репутация: +  252  -
Профиль   Отправить e-mail  

Работа с экселем

VeRaNiKa
Что происходит
:) Все пошло не так…
VeRaNiKa
и что делать?
Хмм… Чернышевский?

Вы совершаете две фатальные взаимосвязанные ошибки. Пользуетесь Экселом и это приводит вас к использованию pandas. И то и другое ОЧЕНЬ большие продукты, которые ведут себя малопредсказуемо.

Решение - НЕ ПОЛЬЗУЙТЕСЬ экселом! Переведите данные в список tuple тогда решение примет вид:

 len(set(data))

Если не удается заполучить данные в нормальном csv виде то для конвертации проще воспользоваться пакетов openxl.

p.s.
Я давал совет в предположении что вы начинающая программистка. В этом случае лучше работать с простенькими родными структкрами данных из питона. Если у вас море опыта и море времени, то конечно никто не мешает вам помучаться с pandas.



Отредактировано doza_and (Сен. 12, 2021 14:12:00)

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version