возникли проблемы с чтением CSV с пандами - PullRequest
0 голосов
/ 12 сентября 2018

Я новичок в мире интеллектуального анализа данных.Я пытаюсь вычислить корреляцию между 16 переменными в наборе данных около 500 строк.Я должен сделать это с пандами.Но у меня есть проблема также с чтением CSV-файла (я на Mac, я не знаю, если это проблема)!Это код, который я использовал:

import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
data = pd.read_csv('https://www.dropbox.com/s/2ps64ditghqj4xv/industrial_project.csv?dl=0', index_col=0)
corr = data.corr()
fig = plt.figure()
ax = fig.add_subplot(111)
cax = ax.matshow(corr,cmap='coolwarm', vmin=-1, vmax=1)
fig.colorbar(cax)
ticks = np.arange(0,len(data.columns),1)
ax.set_xticks(ticks)
plt.xticks(rotation=90)
ax.set_yticks(ticks)
ax.set_xticklabels(data.columns)
ax.set_yticklabels(data.columns)
plt.show()

И ошибка:

Traceback (most recent call last):
  File "/Users/myname/eclipse2-workspace/Prova/ciao.py", line 4, in <module>
    data = pd.read_csv('https://www.dropbox.com/s/2ps64ditghqj4xv/industrial_project.csv?dl=0', index_col=0)
  File "/Users/myname/Library/Python/2.7/lib/python/site-packages/pandas/io/parsers.py", line 678, in parser_f
    return _read(filepath_or_buffer, kwds)
  File "/Users/myname/Library/Python/2.7/lib/python/site-packages/pandas/io/parsers.py", line 446, in _read
    data = parser.read(nrows)
  File "/Users/myname/Library/Python/2.7/lib/python/site-packages/pandas/io/parsers.py", line 1036, in read
    ret = self._engine.read(nrows)
  File "/Users/myname/Library/Python/2.7/lib/python/site-packages/pandas/io/parsers.py", line 1848, in read
    data = self._reader.read(nrows)
  File "pandas/_libs/parsers.pyx", line 876, in pandas._libs.parsers.TextReader.read
  File "pandas/_libs/parsers.pyx", line 891, in pandas._libs.parsers.TextReader._read_low_memory
  File "pandas/_libs/parsers.pyx", line 945, in pandas._libs.parsers.TextReader._read_rows
  File "pandas/_libs/parsers.pyx", line 932, in pandas._libs.parsers.TextReader._tokenize_rows
  File "pandas/_libs/parsers.pyx", line 2112, in pandas._libs.parsers.raise_parser_error
pandas.errors.ParserError: Error tokenizing data. C error: Expected 1 fields in line 3, saw 2

Я пытался во многих отношениях, но я не могу этого сделать!

1 Ответ

0 голосов
/ 12 сентября 2018

То, что вы пытаетесь загрузить, это не файл CSV, а HTML-страница, которая отображает таблицу с информацией, извлеченной из файла CSV. Вам нужно использовать ссылку, которая создается, когда вы нажимаете su Download в правом верхнем углу, и передавать ее в .read_csv (). Это должно выглядеть так:

url = 'https://UGLYUGLYTHINGS.dl.dropboxusercontent.com/cd/0/get/MOREUGLYTHINGSHERE/file?_download_id=ENCODED_ID_OF_THE_FILE&_notify_domain=www.dropbox.com&dl=1'

Части строки выше, написанные заглавными буквами, соответствуют любому бэкэнду, который делает dropbox.
Кроме того, не забудьте указать в качестве параметра sep для .read_csv () символ ';' следующим образом:

data = pd.read_csv(url,sep=';')

Если вы используете правильный URL-адрес, остальная часть кода работает.

Кроме того, как уже упоминалось в комментарии выше, измените заголовок / заголовок вашего вопроса, поскольку он может ввести кого-то в заблуждение. Проблема заключается в чтении удаленного файла, а не в вычислении корреляции.

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