【问题标题】:Convert a list into multiple CSV files with python使用python将列表转换为多个CSV文件
【发布时间】:2019-10-17 12:58:22
【问题描述】:

我想创建一个可扩展的代码来导入多个 CSV 文件,根据 colnames 标准化 colnumns 的顺序并重写 CSV 文件。

import glob
import pandas as pd

# Get a list of all the csv files
csv_files = glob.glob('*.csv')

# List comprehension that loads of all the files
dfs = [pd.read_csv(x,delimiter=";") for x in csv_files]

A=pd.DataFrame(dfs[0])
B=pd.DataFrame(dfs[1])
alpha=A.columns.values.tolist()
print([pd.DataFrame(x[alpha]) for x in dfs])    

我希望能够拆分此对象并为每个文件写入 CSV,并用原始名称重命名它们。用python很容易吗?感谢您的帮助。

【问题讨论】:

  • 所有文件都有相同的列但顺序不同吗?还是您想用其中一个 csv 重命名所有列名?

标签: python pandas list csv glob


【解决方案1】:

如果您想以一致的顺序对列进行重新排序,假设所有 csv 具有相同的列名但顺序不同,您可以对其中一个列名列表进行排序,然后按该列表对其他列进行排序。使用您的示例:

csv_files = glob.glob('*.csv')
sorted_columns = []
for e,x in enumerate(csv_files):
    df = pd.read_csv(x,delimiter=";")
    if e==0:
        sorted_columns = sorted(df.columns.values.tolist())
    df[sorted_columns].to_csv(x, sep=";")

【讨论】: