【发布时间】:2022-01-15 21:48:57
【问题描述】:
我目前在一个项目中,我需要处理大量的 CSV 文件,这些文件充满了类似这样的数据:
CSV1.csv
A B C D ...
1 1980 1 0.9 0.8
2 2003 0.9 0.8 0.2
3 1665 0.7 0.2 0.4
4 1982 0.6 1 0.2
...
CSV2.csv
A E F G ...
1 1665 1 0.4 1
2 1980 0.4 0.8 0.6
3 2003 0.1 0.3 0.9
4 1982 0.3 1 0.6
...
所有 CSV 文件在 A 列中具有相同的值,但杂乱无章。我正在导入这样的所有文件:
path = r"/Users/.../folder/"
all_files = glob.glob(path + "/*.CSV")
all_csv = (pd.read_csv(f, sep=',') for f in all_files)
df_merged = pd.concat(all_csv, axis=1, ignore_index=False)
它被合并,但数据框杂乱无章。
使用df_merged.sort() 排序是不正确的,因为在A 处没有具有相同顺序的列。我知道我可以手动导入每个 csv 文件并应用 .sort(),但这些是 394 个 csv 文件...
我觉得 like this 可能适用于大量 CSV 文件的导入,但我不知道如何调用代码行之前数据框组合 (all_csv是一个生成器对象)。
附:最后我执行以消除重复的A 列:
df_merged = df_merged.loc[:, ~df_merged.columns.duplicated()]
【问题讨论】:
标签: python pandas dataframe csv sorting