【发布时间】:2020-08-28 19:29:54
【问题描述】:
我有一个列表,其中包含目录中存在的所有文件的名称。文件名中包含特殊字符。例如:-'MDH'_data_dump.csv、'PLD'_data_dump.csv 等(单引号)。我正在尝试通过一个列表运行一个循环,该列表将打开所有 csv 文件,将所有 csv 文件的数据附加到单个 dataframe 中。但我收到一个错误。我可以像这样一次打开一个文件
recon_dataframe=pd.read_csv('\'BAL\'_data_dump.csv')
这一切都很好。但是如何遍历所有文件的循环,我无法获得逻辑。请帮忙 。我试过的代码是:
recon_dataframe=pd.DataFrame()
for i in range(0,len(csv_files)):
recon_dataframe.append(pd.read_csv(csv_files[i][:5]+csv_files[i][5:]))
csv_files 是包含所有列表名称的列表。 此外,所有文件的名称都采用相似的格式。引号后的字符串是常量,唯一变化的部分是引号内的字符串
【问题讨论】:
-
为什么不转义循环中的引号?似乎是解决方案。
-
您遇到什么错误?请提供完整的回溯。
-
请注意这里是否是您的问题,但是数据帧上的
append方法与list不同,您需要重新分配它:。所以在你的循环中应该是recon_dataframe = recon_dataframe.append(...。为了提高效率,请参阅此link 的底部并使用concat -
嗨,本,你做对了。一旦我重新分配,代码就起作用了。我以前不知道这个概念。感谢您的及时回复。我也以稍微不同的方式来解决这个我觉得非常强大的问题。我在下面发布答案。再次感谢您,注意安全:)