2016-12-19 2 views
1

Я пытаюсь загрузить файл CSV со следующим URL в dataframe с использованием Python 3.5 и панды:с помощью панда для загрузки/загрузок архивного файла CSV из URL

link = "http://api.worldbank.org/v2/en/indicator/NY.GDP.MKTP.CD?downloadformat=csv" 

CSV-файл (API_NY.GDP. MKTP.CD_DS2_en_csv_v2.csv) находится внутри zip-файла. Моя попытка:

import urllib.request 
urllib.request.urlretrieve(link, "GDP.zip") 
import zipfile 
compressed_file = zipfile.ZipFile('GDP.zip') 
csv_file = compressed_file.open('API_NY.GDP.MKTP.CD_DS2_en_csv_v2.csv') 
GDP = pd.read_csv(csv_file) 

Но при чтении его, я получил сообщение об ошибке "pandas.io.common.CParserError:. Данные tokenizing ошибки Ошибки C: Ожидаемая 3 поля в строке 5, увидела 62".

Любая идея?

ответ

1

Я думаю, что вам нужен параметр skiprows, так как заголовок CSV в строке 5:

GDP = pd.read_csv(csv_file, skiprows=4) 
print (GDP.head()) 
    Country Name Country Code  Indicator Name Indicator Code   1960 \ 
0  Aruba   ABW GDP (current US$) NY.GDP.MKTP.CD   NaN 
1  Andorra   AND GDP (current US$) NY.GDP.MKTP.CD   NaN 
2 Afghanistan   AFG GDP (current US$) NY.GDP.MKTP.CD 5.377778e+08 
3  Angola   AGO GDP (current US$) NY.GDP.MKTP.CD   NaN 
4  Albania   ALB GDP (current US$) NY.GDP.MKTP.CD   NaN 

      1961   1962   1963   1964   1965 \ 
0   NaN   NaN   NaN   NaN   NaN 
1   NaN   NaN   NaN   NaN   NaN 
2 5.488889e+08 5.466667e+08 7.511112e+08 8.000000e+08 1.006667e+09 
3   NaN   NaN   NaN   NaN   NaN 
4   NaN   NaN   NaN   NaN   NaN 

       2008   2009   2010   2011 \ 
0  ...  2.791961e+09 2.498933e+09 2.467704e+09 2.584464e+09 
1  ...  4.001201e+09 3.650083e+09 3.346517e+09 3.427023e+09 
2  ...  1.019053e+10 1.248694e+10 1.593680e+10 1.793024e+10 
3  ...  8.417803e+10 7.549238e+10 8.247091e+10 1.041159e+11 
4  ...  1.288135e+10 1.204421e+10 1.192695e+10 1.289087e+10 

      2012   2013   2014   2015 2016 Unnamed: 61 
0   NaN   NaN   NaN   NaN NaN   NaN 
1 3.146152e+09 3.248925e+09   NaN   NaN NaN   NaN 
2 2.053654e+10 2.004633e+10 2.005019e+10 1.933129e+10 NaN   NaN 
3 1.153984e+11 1.249121e+11 1.267769e+11 1.026269e+11 NaN   NaN 
4 1.231978e+10 1.278103e+10 1.321986e+10 1.139839e+10 NaN   NaN 
+0

Я опустил этот аргумент для упрощения. Я пробовал это раньше, но я получил эту ошибку: «pandas.io.common.EmptyDataError: Нет столбцов для разбора из файла». Кстати, я использую Mac OS Sierra и PyCharm Community Edition 2016.3. Любая идея о том, почему она не загружает данные? –

+0

Хммм, может быть, проблема с загрузкой или распаковкой, протестируйте ее с помощью 'print csv_file.readlines() [: 3]' – jezrael

+0

Я получил этот @jezrael: '[b '\ xef \ xbb \ xbf" Источник данных "," Мировое развитие Индикаторы ", \ r \ n ', b' \ r \ n ', b'" Последнее обновление Дата "," 2016-12-16 ", \ r \ n ']'. Любая подсказка? –

Смежные вопросы