2016-02-28 2 views
-1

У меня есть файл CSV, который имеет 15 строк и 22 столбца. Каждый раз, когда я пытаюсь импортировать файл, он исключает 11-й и 12-й столбцы.Pandas read_csv продолжает возвращать нулевые столбцы

Что странно, что если я попробую это с файлом из 20 столбцов или меньше, эта проблема не произойдет.

Любая помощь будет оценена по достоинству.

Я обновил приведенный ниже код и попробовал другой файл csv. Как видно из вывода, не только столбцы не отображаются, когда они печатаются, но когда я пытаюсь выполнить запрос с помощью SQLDF, он говорит, что столбец не существует.

Вот мой код:

import pandas as pd 
mydata_demographics= pd.read_csv('Demographics2.csv', header=0) 
mydata_demographics.head() 

from pandasql import sqldf 
query_T = """ 
select 
b1.customer_id, 
b1.YOB, b1.NumChildren, b1.City, b1.Population_K, b1.HouseHolds, 
b1.HHAveSize,  
b1.PopUnder5, b1.Pop5_16, b1.Pop17_25, b1.Pop26_35, 
b1.Pop36_45, b1.Pop46_55, b1.Pop56_65, b1.PopOver65, 
b1.HHIncomeMed, b1.WhtCollarOcc, b1.BluCollarOcc 
from 
mydata_demographics B1 
""" 

mydata_demo_T= sqldf(query_T, globals()) 
mydata_demo_T.head() 

Вот пример исходных данных (опять же, 22 столбцов, 15 строк):

HouseHolds HHAveSize PopUnder5 Pop5_16 
     277   2.2   5.8  14.9 
     277   2.2   5.8  14.9 
     277   2.2   5.8  14.9 
     292   2.3   5.8  14.9 

А вот пример результата:

 City Population_K HouseHolds  ...   Pop5_16  
0 Chicago   623   277  ...    14.9   
1 Chicago   623   277  ...    14.9   
2 Chicago   623   277  ...    14.9   
3 Chicago   684   292  ...    14.8   

Теперь, когда я запускаю код SQL, он дает следующую ошибку: столбец HHAveSize не работает Xist:

PandaSQLException: (sqlite3.OperationalError) no such column: b1.HHAveSize  
[SQL: '\nselect \nb1.customer_id, \nb1.YOB, b1.NumChildren, b1.City, 
b1.Population_K, 

При запуске mydata_demographics.shape

это показывает, что существует 22 столбцов: mydata_demographics.shape Out [45]: (15, 22)

+1

Можете ли вы отправить фактические данные файла csv raw? –

+1

Можете ли вы опубликовать фактический результат? Есть ли точки между строками, как показано в примере? Потому что это означает, что у вас есть столбцы, но из-за большого количества столбцов он не отображает все. – Shweta

+1

Попробуйте 'print mydata_1.shape', чтобы увидеть фактическое число столбцов – Happy001

ответ

0

Как упоминалось Швета в комментариях столбцы, вероятно, там, они просто не отображаются. Если вы хотите, чтобы быть в состоянии увидеть все столбцы, которые вы можете напечатать кадр данных, как:

with pd.option_context('display.max_columns', len(mydata_1.columns), 'display.max_rows', 4): 
    print mydata_1 

Это будет печатать первые 4 строки и все столбцы.

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