IndexError при чтении CSV-файла с pandas - PullRequest
1 голос
/ 29 мая 2020

У меня есть CSV-файл, который я пытаюсь прочитать с помощью модуля pandas в python .. (я кодирую в Ubuntu).

pd.read_csv("filename.csv",skiprows=2)

Я хочу пропустить две строки поэтому я использую здесь аргумент skiprows . (Файл с именем filename.csv создается программой C.) Проблема, с которой я столкнулся, заключается в том, что когда я пытаюсь прочитать файл напрямую, я получаю IndexError следующим образом:

IndexError: index 0 is out of bounds for axis 0 with size 0

и одно предупреждение как

FutureWarning: elementwise comparison failed; returning scalar instead, but in the future will perform elementwise comparison
res_values = method(rvalues)

Но в то же время, если я открою свой файл CSV и просто сохраню его, не внося в него никаких изменений ... моя ошибка будет решена. Поэтому каждый раз мне нужно читать свой CSV-файл, мне нужно один раз открыть его через Libre Office (в Ubuntu) и сохранить этот файл с помощью ctrl + s, а затем в опции сохранить как текст CSV. Затем моя программа прочитала его без ошибок. Но если не сохранять, выдает вышеупомянутую ошибку. Пожалуйста, помогите мне с этим вопросом. Заранее спасибо.

Ответы [ 2 ]

1 голос
/ 29 мая 2020

Думаю, дело в формате csv файла при экспорте. Из-за того, что после открытия csv и сохранения, он получает правильный формат. Проверьте файл с помощью notepad ++, чтобы исправить разделитель файла csv.

0 голосов
/ 29 мая 2020

Это IndexError в python, что означает, что мы пытаемся получить доступ к индексу, которого нет. Я написал очень простой пример, чтобы понять эту ошибку. Здесь я пытаюсь присвоить какое-либо значение какому-либо индексу.

import numpy as np

arr = np.array([], dtype=np.int64) 
print(arr.shape)
arr[0] = 23   

enter image description here

Возможно, было несколько экземпляров пустых фреймов данных, которые вызывали Ошибка. Если у вас есть числовые c и нечисловые c данные в столбце индекса. Затем numpy сбивается с толку, когда пытается проверить, упорядочен ли индекс.

Для решения:

df = pd.read_csv('your_file.tsv', sep='\t', header=0) 
df.set_index(['0'], inplace=True)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...