Я пытаюсь прочитать в csv-файле, используя read_csv. Я очень смущен, так как код работает, когда один из них вводится в csv вручную.Использование StringIO, отсутствие аргументов ключевого слова
from six.moves import cStringIO as StringIO
Companies="""
Top, Equipment, Users, Neither
Company 1, 0, 0, 43
Company 2, 0, 0, 32
Company 3, 1, 3, 20
Company 4, 9, 3, 9
Company 5, 8, 7, 3
Company 6, 2, 7, 8
Company 7, 5, 2, 1
Company 8, 1, 4, 1
Company 9, 5, 1, 0
Company 10, 1, 1, 3
Company 11, 2, 2, 0
Company 12, 0, 1, 1
Company 13, 2, 0, 0
Company 14, 1, 0, 0
Company 15, 1, 0, 0
Company 16, 0, 1, 0
"""
Использование:
df = pd.read_csv(StringIO(Companies),
skiprows=1,
skipinitialspace=True,
engine='python')
^^ Вышеперечисленные работы!
Однако, когда я пытаюсь прочитать данные из отдельного csv, я продолжаю получать ошибки.
Я пробовал:
df = pd.read_csv(StringIO('MYDATA.csv', nrows=17, skiprows=1,skipinitialspace=True, delimiter=','))
и получил TypeError ошибки: StringIO() не принимает никаких аргументов ключевых слов Первоначально я получил TypeError ошибки: Должно быть Convertible в буфер, а не DataFrame, но я не могу помните, как я избавился от этой ошибки.
Я просмотрел документацию StringIO и другие сайты, включая: https://newcircle.com/bookshelf/python_fundamentals_tutorial/working_with_files, но я застрял!
Oh дух! Я чувствую себя глупо. Исправлено это, но теперь я получаю ValueError: Нет столбцов для разбора из файла. Я попытался возиться и добавить кодировку = 'utf-16', но это может быть не тот код, который я ищу, знаете ли вы что-нибудь о том, как это исправить? – jenryb
@jenryb: вы сейчас открываете файл или используете 'StringIO()'? –
Все еще используется StringIO(). Должен ли я сначала открыть файл? Это имело бы смысл, поскольку оригинал был доступен внутри кода. Я бы напечатал: open ('MYDATA.csv', 'rb') как f? Затем вызовите f в StringIO? – jenryb