使用python将列表转换为多个CSV文件

时间:2019-05-31 22:51:57

标签: python pandas list csv glob

我想创建一个可伸缩的代码来导入多个CSV文件,根据名称来标准化列名的顺序并重写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很容易做到吗?谢谢您的帮助。

1 个答案:

答案 0 :(得分:0)

如果要按一致的顺序对列进行重新排序,假设所有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=";")