我正在使用一个开放数据集来记录1999年至2015年期间学校的注册情况。但是,即使这些列为空,数据集也会在CSV中预先分配列,即使这些列为空。
可以在http://www.gov.pe.ca/opendata/OD9%20Offical%20School%20Enrollments%201999%20-2015.csv
查看数据这是我的代码:
#Read current open data set (OD34) from URL and store in an array called enrollment
url = "http://www.gov.pe.ca/opendata/OD9%20Offical%20School%20Enrollments%201999%20-2015.csv?"
col_names = ['School_Name','1999','2000','2001','2002','2003','2004','2005','2006','2007','2008','2009','2010','2011','2012','2013','2014','2015']
enrollment = pandas.read_csv(url, header=None, skiprows=1, names=col_names, nrows=2)
print(enrollment)
print(enrollment.shape)
print(type(enrollment))
代码确实会转换值,但过多的逗号意味着每所学校都有数十个NaN值。 DataFrame确实显示为2,18个数组,但print(enrollment)
显示NaN值。
编辑:我在pandas.read_csv语句中添加了na_filter=False
,当我print(enrollment)
时,无关的NaN值消失了,但看起来每列(一年)都有所有数据而不是对齐每年的入学人数。
以下是数据的示例。
School Name,1999,2000,2001,2002,2003,2004,2005,2006,2007,2008,2009,2010,2011,2012,2013,2014,2015,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
Alberton Elementary School,229,231,237,213,225,218,219,214,194,186,167,175,178,158,148,129,127,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,