Невозможно сопоставить строки Excel с количеством строк в кадре данных pandas - PullRequest
0 голосов
/ 21 января 2019

Я попытался закодировать символы Юникода в файле, который я передаю в кадр данных pandas.Но число уникальных подсчетов строк с помощью df.column.value_counts (), которое я получаю в записной книжке Jupyter, не соответствует количеству строк в Excel одного и того же файла (после удаления повторяющихся значений).

Как мне исправить проблему?

Я загрузил текстовый файл (разделенный табуляцией) и преобразовал его в кадр данных pandas, используя encoding = 'ISO-8859-1'.Кадр данных был создан с уникальным количеством строк 66370 для одного из столбцов.

Когда я применил «Удалить дубликаты» в нужном столбце исходного файла CSV (я использовал MS Excel для чтения файла экспорта), число уникальных значений = 66368.

Тамразница в 2 в этих 2 файлах - кадр данных pandas в Jupyter Notebook - уникальное количество строк в pandas (66370) и версия строк в превосходной версии (66368).

Я понимаю, что это может быть проблема с кодировкой, но я не могу исправить это.

Может кто-нибудь помочь, пожалуйста?

df = pd.read_csv('csv_file.csv', encoding= 'ISO-8859-1')
df.column1.value_counts()

Я ожидаю равных результатов в версиях уникальных row_counts и df.column1.value_counts ().

Фактические результатыпоказывая разницу 2 в счетчиках строк этими двумя методами.

Ответы [ 2 ]

0 голосов
/ 21 января 2019

Хорошо, ребята.Я наконец нашел ответ !!Примерно после 6 часов борьбы, я наконец-то понял, какую правильную технику кодирования - правильный кодер для моей проблемы был «ANSI»

, поэтому единственным изменением в моем коде был кодер ниже:

df = pd.read_csv('csv_file.csv', encoding= 'mbcs')

Я нашел ответ, перейдя по этой ссылке: Получить кодировку файла в Windows

Правильный кодировщик здесь: https://docs.python.org/3/library/codecs.html#standard-encodings

0 голосов
/ 21 января 2019

- Может случиться так, что вы также читаете столбец заголовка и обратите внимание, что pandas начинает индексирование с нуля. Не могли бы вы повторить с ниже и дайте мне знать результат

df = pd.read_csv('rounds2.csv', encoding= 'ISO-8859-1')
print(len(df.column1.unique()))
print(df.shape)

Пожалуйста, дайте мне знать результаты обоих, также вы пытаетесь открыть файл в блокноте ++ и согласовать числа.

дайте мне знать ваш вывод, и тогда я отредактирую свой ответ соответственно

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...