0

我有 12 个 csv 文件,我想按列导入数据框。

例如,每 12 个 csv 文件的命名不同,如下所示:

filenames = ['experiment_timesteps_1.csv',
             'experiment_timesteps_2.csv',
             'experiment_timesteps_3.csv',
             'experiment_timesteps_4.csv',
             'experiment_timesteps_5.csv',
             'experiment_timesteps_6.csv',
             'experiment_timesteps_8.csv',
             'experiment_timesteps_10.csv',
             'experiment_timesteps_12.csv',
             'experiment_timesteps_15.csv',
             'experiment_timesteps_18.csv',
             'experiment_timesteps_20.csv']

我想使用唯一的文件名(第 11 个到最后 4 个)作为新数据框中的列标题。每个文件由具有相同行数的单列组成,如下所示:

results
266430.1827
318881.2395
285411.9195
279878.2699
272394.9219
239213.2243
274932.4677
290705.0974
315464.9616
240384.0452

我在执行以下代码时遇到了错误:

results = DataFrame()
for name in filenames:
    results[name[11:-4]] = read_csv(name, header=0)

ValueError:无法设置没有定义索引的框架和无法转换为系列的值

4

1 回答 1

1

如果我理解正确,你可以这样做:

results = DataFrame()
for name in filenames:
    aux = read_csv(name)
    results[name[11:-4]] = aux["results"]

这将为每个具有您想要的唯一标识符的文件生成一个列,并且每个 csv 的“结果”列将保存在相应的列中。

于 2020-10-07T14:21:20.617 回答