将多个csv合并,并添加一列文件名。代码提示No objects to concatenate
问题相关代码,请勿粘贴截图
#将多个csv合并,并添加一列文件名
import os
import pandas as pd
import glob
globbed_files = glob.glob(r"E:/trans_adv/adv/*/*.csv") #读取所有csv
headerList = ["index","depth","isGroup","isActive","CommandType","content","name","filename"] #文件表头
data = [] # 创建容器
for csv in globbed_files:
frame = pd.read_csv(csv)
frame['filename'] = os.path.basename(csv)
data.append(frame) #添加文件名为列
#写入新文件
newdata = pd.concat(data, ignore_index=True) #去掉所有单独csv文件表头,并合并所有csv
newdata.writerow(headerList) #添加新表头
newdata.to_csv("all_data.csv")
运行结果及报错内容
Traceback (most recent call last):
File "e:\trans_adv\Test.py", line 16, in
newdata = pd.concat(data, ignore_index=True) #ȥ�����е���csv�ļ���ͷ�����ϲ�csv
File "D:\Python\3.7.1\lib\site-packages\pandas\util_decorators.py", line 311, in wrapper
return func(*args, **kwargs)
File "D:\Python\3.7.1\lib\site-packages\pandas\core\reshape\concat.py", line 304, in concat
sort=sort,
File "D:\Python\3.7.1\lib\site-packages\pandas\core\reshape\concat.py", line 351, in init
raise ValueError("No objects to concatenate")
ValueError: No objects to concatenate