我正在尝试将多个CSV文件读入Pandas数据帧中。这些CSV文件不是逗号分隔的,而是用分号";"分隔字段。
我基于此处的答案编写了代码。
我的数据都在一个特定的子目录中:
我使用
代码执行正常。
如果我在该目录中只运行一个文件,一切都没问题:
我基于此处的答案编写了代码。
我的数据都在一个特定的子目录中:
/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 (**总共12列**): sensor_id 146 non-null int64 sensor_type 146 non-null object etc......
如果我在目录中运行它时使用2个或多个文件,一切都会从一开始就出错。
4个文件的输出:
RangeIndex: 1893 entries, 0 to 1892 Data columns (**总共33列**): -2.077 1164 non-null float64 -2.130 145 non-null float64 2.40 145 non-null float64
在单个CSV版本上运行big_frame.head()
会得到以下结果,其中包含正确的列名:
我是否有做什么明显的事情导致行数和列数都在增加?
非常感谢您的指导!