将多个CSV文件导入具有相同名称的变量

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了将多个CSV文件导入具有相同名称的变量相关的知识,希望对你有一定的参考价值。

一个目录中有多达1440个文件可供Python读取。文件名的格式为

HMM_1_1_.csv
HMM_1_2_.csv
HMM_1_3_.csv
HMM_1_4_.csv
...

而对于HMM_i_j_.csvi从1到144,j从1到10。

如何将它们中的每一个导入名为HMM_i_j的变量,类似于其原始名称?

例如,HMM_140_8_.csv应该作为变量HMM_140_8导入。

答案

您可以使用pandas和字典来完成此操作。这个脚本可能会做你想要的。

要在python环境中访问特定的csv文件,只需使用ie csv [HMM_5_7]。

import pandas as pd
csv = {}
for i in range(1, 145):
    for j in range(1, 11):
        s = 'HMM_{}_{}'.format(i,j) 
        csv[s] = pd.read_csv(s+'.csv')

或者:(更短)

d = {}

for i in range(1440):
    s = 'HMM_{}_{}'.format(i//10+1,i%10+1)
    d[s] = pd.read_csv(s+'.csv')

或者不太可读的单行:

d = {'HMM_{}_{}'.format(i//10+1,i%10+1):
     pd.read_csv('HMM_{}_{}.csv'.format(i//10+1,i%10+1)) for i in range(1440)}
另一答案

您可以创建一个字典,其中键的名称减去'_.csv',而值是文件的内容,而不是将它们放在具有此名称的变量中。

以下是步骤,我让您弄清楚如何完成每一步:

  • 创建一个空字典
  • 循环i从1到144,j从1到10循环
  • 如果存在相应的文件,请将其读取并将其内容放在相应键的字典中

以上是关于将多个CSV文件导入具有相同名称的变量的主要内容,如果未能解决你的问题,请参考以下文章

熊猫中具有相同名称的多个列

对 .csv 文件中具有相同“年份”的数字求和 [重复]

将数据框保存到多个 CSV,保留数据框名称

将来自不同文件夹的多个 csv 文件(相似名称)合并到一个 csv 中并逐行绑定它们 [关闭]

使用 vba/macros 将多个 CSV 文件中的特定列导入 Access 2013

是否可以以相同或不同的顺序将具有相同标题或标题子集的多个 csv 文件读取到 spark 数据帧中?