我正在尝试将多个CSV文件读取到Pandas数据框中. CSV不会以逗号分隔-字段以分号“;”分隔.
我的代码基于答案here.
我的数据全部在特定的子目录中:/ data / luftdaten / 5331
这是我运行的:
import glob
import pandas as pd
path =r'data/luftdaten/5331' # use your path
filenames = glob.glob(path + "/*.csv")
count_files = 0
dfs = []
for filename in filenames:
if count_files ==0:
dfs.append(pd.read_csv(filename, sep=";"))
count_files += 1
else:
dfs.append(pd.read_csv(filename, sep=";", skiprows=[0]))
count_files +=1
big_frame = pd.concat(dfs, ignore_index=True)
我使用count_files监视它是否是第一个CSV-在这种情况下,我将导入标头.否则,它会跳过标题.
该代码执行确定.
如果我使用该目录中的单个文件运行它,那么一切都很好:
big_frame.info()
输出:
RangeIndex: 146 entries, 0 to 145
Data columns (**total 12 column**s):
sensor_id 146 non-null int64
sensor_type 146 non-null object
etc......
如果我在目录中有2个或更多文件来运行它,那么从一开始就会出错.
输出4个文件:
RangeIndex: 1893 entries, 0 to 1892
Data columns (total **33 columns**):
-2.077 1164 non-null float64
-2.130 145 non-null float64
2.40 145 non-null float64
在单个CSV版本上运行big_frame.head()会给出此信息,并带有正确的列名:
在运行相同的导入四个文件的情况下,这给了我:
我在做什么,这不仅导致行数增加,而且导致列数增加吗?
您的指导将不胜感激!