如何读取大量的 csv 索引文件
How ro read a lot of csv indexed files
我有 38 个 .csv
个文件,名为 Raw_data_unique_1
到 Raw_data_unique_38
,并且都具有相同的列结构。
我想使用我知道的指令 pd.read_csv
读取这些文件,然后将它们全部附加到 1
唯一文件中,比如 data_unique
.
所以,我创建了一个索引列表:lst = list(range(1,39))
并且认为我可以 运行:
for i in lst:
data_i = pd.read_csv('C:/.../Raw_data_unique_i.csv', sep=',', header=0)
但是我有一个误会:名称Raw_data_unique_i.csv
无法识别:“[Errno 2] No such file or directory”,意思是没有编号已分配给索引 i
...
你能解释一下我做错了什么吗?
您的“i”不是这样的名称中的变量。
也许一个快速的 ficx 会声明:
folder = 'C:/.../Raw_data_unique_'
format = csv
然后连接
file_name = folder+i+format
data_i = pd.read_csv(file_name, sep=',', header=0)
但是请记住,如果您需要在循环迭代期间每个 data_i 工作,因为它每次都会被重写。如果您不想要那样,您应该查看您拥有的结构并找到一种更好地存储它的方法。
ps.: 如果你只想限制你的for迭代:
for i in range(1, 39):
使用f-string使字符串中的i
取变量的实际值i
:
for i in lst:
data_i = pd.read_csv(f'C:/.../Raw_data_unique_{i}.csv', sep=',', header=0)
注意字符串前的f
和字符串内的{i}
。
此操作不需要 Pandas
import shutil
with open('data_unique.csv', 'w') as out:
for i in range(1, 40):
with open(f'Raw_data_unique_{i}.csv') as inp:
shutil.copyfileobj(inp, out)
这里我使用了f-strings
to evaluate i
inside the string. If you use Python < 3.6, use str.format
方法:
with open('Raw_data_unique_{i}.csv'.format(i=i)) as inp:
我有 38 个 .csv
个文件,名为 Raw_data_unique_1
到 Raw_data_unique_38
,并且都具有相同的列结构。
我想使用我知道的指令 pd.read_csv
读取这些文件,然后将它们全部附加到 1
唯一文件中,比如 data_unique
.
所以,我创建了一个索引列表:lst = list(range(1,39))
并且认为我可以 运行:
for i in lst:
data_i = pd.read_csv('C:/.../Raw_data_unique_i.csv', sep=',', header=0)
但是我有一个误会:名称Raw_data_unique_i.csv
无法识别:“[Errno 2] No such file or directory”,意思是没有编号已分配给索引 i
...
你能解释一下我做错了什么吗?
您的“i”不是这样的名称中的变量。
也许一个快速的 ficx 会声明:
folder = 'C:/.../Raw_data_unique_'
format = csv
然后连接
file_name = folder+i+format
data_i = pd.read_csv(file_name, sep=',', header=0)
但是请记住,如果您需要在循环迭代期间每个 data_i 工作,因为它每次都会被重写。如果您不想要那样,您应该查看您拥有的结构并找到一种更好地存储它的方法。
ps.: 如果你只想限制你的for迭代:
for i in range(1, 39):
使用f-string使字符串中的i
取变量的实际值i
:
for i in lst:
data_i = pd.read_csv(f'C:/.../Raw_data_unique_{i}.csv', sep=',', header=0)
注意字符串前的f
和字符串内的{i}
。
此操作不需要 Pandas
import shutil
with open('data_unique.csv', 'w') as out:
for i in range(1, 40):
with open(f'Raw_data_unique_{i}.csv') as inp:
shutil.copyfileobj(inp, out)
这里我使用了f-strings
to evaluate i
inside the string. If you use Python < 3.6, use str.format
方法:
with open('Raw_data_unique_{i}.csv'.format(i=i)) as inp: