Pandas read_csv不断返回空列

时间:2016-02-28 02:38:20

标签: python csv pandas

我有一个包含15行和22列的CSV文件。每次我尝试导入文件时,它都会排除第11和第12列。

奇怪的是,如果我尝试使用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不存在:

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     出[45] :( 15,22)

1 个答案:

答案 0 :(得分:0)

正如Shweta在评论中提到的那样,列可能就在那里,他们只是没有被显示出来。如果您希望能够查看所有列,则可以打印数据框,如:

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

这将打印前4行和所有列。