我想创建一个可伸缩的代码来导入多个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很容易做到吗?谢谢您的帮助。
答案 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=";")