【发布时间】:2015-11-23 13:37:09
【问题描述】:
我想将大约 10 个 CSV 文件附加到一个文件中。我的想法是将文件名分配给编号的 data_files,然后将它们附加到 while 循环中,但是我无法将文件更新到循环中的下一个编号的 date_file。我不断收到与“data_file 不存在”和“无法连接 'str' 和 'int' 对象”相关的错误。我什至不确定这是否是解决我的问题的现实方法。任何帮助将不胜感激。
import pandas as pd
path = '//pathname'
data_file1= path + 'filename1.csv'
data_file2= path + 'filename2.csv'
data_file3= path + 'filename3.csv'
data_file4= path + 'filename4.csv'
data_file5= path + 'filename5.csv'
data_file6= path + 'filename6.csv'
data_file7= path + 'filename7.csv'
df = pd.read_csv(data_file1)
x = 2
while x < 8:
data_file = 'data file' + str(x)
tmdDF = pd.read_csv(data_file)
df = df.append(tmpDF)
x += x + 1
【问题讨论】:
-
为什么要为此使用 pandas?如果您只是连接文件there are more efficient ways.
-
顺便说一句,您想要
x += 1或x = x + 1。您的最后一行将 x 增加 2。您正在尝试打开名为 'data file1' 、 'data file2' 等的文件,这就是它失败的原因。你不能像那样分配变量名,你可能想使用字典。当然,您也不应该几乎逐字重复同一行七次,您可以使用循环。 -
@PauloAlmeida 这些文件都有相同的标题行,我试图仅捕获标题下方的信息。一位同事建议为此使用 pandas 数据框。知道了这一点,你用 pandas 来做这个有意义吗?我非常愿意使用熊猫以外的东西,这只是其他人的初步建议。我对python知之甚少。
-
如果你想去掉header,比我链接里的方法稍微复杂一点,但是pandas还是没必要的,因为你不处理数据。我发布了一个使用 fileinput 模块的答案。