How can I import a lot of csv data files using one function or for-loop?
本问题已经有最佳答案,请猛点这里访问。
我有109个csv文件要使用函数或for循环导入。到目前为止,我已经使用以下功能手动导入了这些文件:
1 2 3 4 5 | import numpy as np plain_table1 = np.genfromtxt('File-path\File-name1.csv', delimiter=',') ... plain_table109 = np.genfromtxt('File-path\File-name109.csv', delimiter=',') |
是否有一种更简单的方法来导入所有数据文件而不必手动键入所有数据文件?
使用字典理解,可以构造一个字典来存储数据,使用数字键来标识数组:
1 2 3 4 | import numpy as np d = {i: np.genfromtxt(f'File-path\File-name{i}.csv', delimiter=',') \ for i in range(1, 110)} |
然后,通过
只要所有文件都是".csv",就可以对任意数量的文件执行此操作。
1 2 3 4 | import numpy as np from os import listdir, path plain_table = {file: np.genfromtxt(path.join(File-path,file), delimiter=',') for file in listdir(FolderPath)} print(len(plain_table)) |
在最简单的形式中,使用
1 2 3 4 5 6 7 8 | import numpy as np first = 1 last = 109 plain_tables = [] for i in range(first, last + 1): plain_tables.append(np.genfromtxt('File-path\File-name%s.csv' % i, delimiter=',') |
注意字符串中的%s。这是一个占位符。与
python中的其他特性也有同样的作用,比如列表理解:
1 2 | plain_tables = [np.genfromtxt('File-path\File-name%s.csv' % i, delimiter=',') for i in range(first, last + 1)] |