首页 > 解决方案 > 使用 pd.concat 并通过 .to_csv 导出输出时如何为每一行设置不同的索引名称

问题描述

我有这个代码可以按行(水平)合并多个 csv 文件,每个文件中已经有标题:

import csv
import pandas as pd
import glob

interesting_files = glob.glob("*.csv")
df_list = []
similarity = ['(add)']
for csv_file in sorted(interesting_files):
    if any(pattern in csv_file for pattern in similarity):
        df_list.append(pd.read_csv(csv_file))#, header=None))
df = pd.concat(df_list, ignore_index=True, axis=0,)
df.to_csv("_Combined_.csv", index=False)

但是输出的索引列按顺序显示数字,我想为每一行将索引列设置为不同类别的列。怎么做?

当前的csv输出:

    a b c d
0   1 2 3 4
1   5 6 7 8
2   9 1 2 3

我曾尝试创建一个索引列表并将它们合并在一起,但正如我所怀疑的那样,结果如下所示:

      a b c d
mel   
bou   
rne   
  0   1 2 3 4
  1   5 6 7 8
  2   9 1 2 3

虽然这是我的预期输出:

      a b c d
mel   1 2 3 4
bou   5 6 7 8
rne   9 1 2 3

标签: pythoncsvconcatenation

解决方案


推荐阅读