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

时间:2018-02-28 14:36:58

标签: python csv import

一个目录中有多达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导入。

2 个答案:

答案 0 :(得分:3)

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

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

<div class='container'>
    <svg id='clock' width='220' height='220'>
        <g id='face'>
            <circle id='border' cx='110' cy='110' r='95'></circle>
        </g>
        <g id='digits'>
            <line x1='110' y1='22' x2='110' y2='33' transform='rotate(30 110 110)'></line>
            <line x1='110' y1='22' x2='110' y2='33' transform='rotate(60 110 110)'></line>
            <text x='192.5' y='110'>III</text>
            <line x1='110' y1='22' x2='110' y2='33' transform='rotate(120 110 110)'></line>
            <line x1='110' y1='22' x2='110' y2='33' transform='rotate(150 110 110)'></line>
            <text x='110' y='192.5'>VI</text>
            <line x1='110' y1='22' x2='110' y2='33' transform='rotate(210 110 110)'></line>
            <line x1='110' y1='22' x2='110' y2='33' transform='rotate(240 110 110)'></line>
            <text x='27.5' y='110'>IX</text>
            <line x1='110' y1='22' x2='110' y2='33' transform='rotate(300 110 110)'></line>
            <line x1='110' y1='22' x2='110' y2='33' transform='rotate(330 110 110)'></line>
            <text x='110' y='27.5'>XII</text>
        </g>
        <g id='hands'>
            <line id='hour' x1='110' y1='110' x2='110' y2='55'>
                <animateTransform attributeName='transform' attributeType='XML' type='rotate'></animateTransform>
            </line>
            <line id='minute' x1='110' y1='110' x2='110' y2='44'>
                <animateTransform attributeName='transform' attributeType='XML' type='rotate'></animateTransform>
            </line>
            <line id='second' x1='110' y1='110' x2='110' y2='33'>
                <animateTransform attributeName='transform' attributeType='XML' type='rotate'></animateTransform>
            </line>
            <circle id='cap' cx='110' cy='110' r='3'></circle>
        </g>
    </svg>
</div>

或:(更短)

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')

答案 1 :(得分:1)

不是将它们放在具有此名称的变量中,而是可以创建一个字典,其中键是名称减去&#39; _。csv&#34;并且值是文件的内容。

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

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