我使用这种格式的python从路径中追加多个csv文件
A B C date
2 3 4 20180213
5 6 7 20170213
A B C date
3 4 9 20170210
3 2 1 20180211
我使用的代码是:
import os
import datetime
import glob
import pandas as pd
import csv
yyyymmdd = (dt.date.today()-timedelta(days=1)).strftime('%Y%m%d')
for filename in glob.glob(os.path.join("/xyz/abc/*/*.csv")):
df2=pd.read_csv(filename).assign(date=yyyymmdd)
df2 = df2.append(df2, ignore_index=True)
df2=df2.drop_duplicates()
print(df2)
我得到的结果是:
A B C date
2 3 4 20180213
5 6 7 20170213
A B C date
3 4 9 20170210
3 2 1 20180211
即。 标题重复。而我希望它的格式为:
A B C date
2 3 4 20180213
5 6 7 20170213
3 4 9 20170210
3 2 1 20180211
答案 0 :(得分:0)
查看header
函数here的read_csv
参数,我的建议是使用header=None
跳过标题,但第一个文件除外。
答案 1 :(得分:0)
考虑构建数据框的列表或字典,然后使用pandas.concat
将所有列表项连接在一起,不会出现标题问题:
...
df_list = []
for filename in glob.glob(os.path.join("/xyz/abc/*/*.csv")):
tmp = pd.read_csv(filename).assign(new_date=yyyymmdd)
df_list.append(tmp) # LIST APPEND
print(tmp)
final_df = pd.concat(df_list, ignore_index=True).drop_duplicates()