复杂的csv格式:两行一列



下面是我现在正在钻研的一个非常尴尬的文件头:

,,,1980,1981,1982,1983,1984,1985,1986,1987,1988,1989,1990,1991,1992,1993,1994,1995,1996,1997,1998,1999,2000,2001,2002,2003,2004,2005,2006,2007,2008,2009,2010,2011,2012
"Office","Office(code)","Origin"
"Albania","AL","Total",,,,,,,,,,,,,,,,,,,,,6,49,87,201,390,395,116,420,541,402,349,21,,

也就是说,前两行组成头文件。有没有办法在没有任何大麻烦的情况下将read_csv()应用于此?

您可以手动解析前两行,然后将其余部分传递给read_csv,例如:

with open('data.csv') as f:
    headers = f.readline().strip().split(',') # get years
    headers[:3] = f.readline().strip().split(',') # update first three columns
    data = pd.read_csv(f, names=headers)

注意,这将传递文件句柄fread_csv,"读头"已经在第三行开始。

最新更新