一次处理多个 CSV 文件

Manipulating multple CSV files at once

我目前正在学习如何使用 Python,目前我非常喜欢使用 CSV 文件。我设法学到了一些东西,现在我想将学到的东西一次应用到多个文件中。但是有些事情让我感到困惑。我有这个代码:

for root, dirs, files in os.walk(path):       
  for file in files: 
    if file.endswith(".csv"):              
         paths=os.path.join(root,file)
         tables=pd.read_csv(paths, header='infer', sep=',') 
         print(paths)
         print(tables)

它以某种格式打印在该文件夹中找到的所有 CSV 文件(一种 table,第一行是 header,其余的在下面) 诀窍是我希望能够随时访问这些(打印和编辑),而我在那里写的内容只打印一次。如果我在那之后在其他任何地方写 print(paths)prints(tables) 它只打印最后一个 CSV 文件及其数据,即使我相信它应该做同样的事情。

我也尝试为每个打印(tables 和路径)制作类似的单独代码,但它只适用于第一个 os.walk() - 我只是不明白为什么它只工作一次。

谢谢!

您需要在加载数据帧时存储它们。现在你只是加载和丢弃。

dfs = []
for root, dirs, files in os.walk(path):       
  for file in files: 
    if file.endswith(".csv"):              
         paths=os.path.join(root,file)
         tables=pd.read_csv(paths, header='infer', sep=',')
         dfs.append(tables)
         print(paths)
         print(tables)

以上将为您提供 DataFrame 列表 dfs,然后您可以访问和使用这些数据帧。像这样:

print(dfs[0])
# prints the first DataFrame you read in.

for df in dfs:
    print(df)
# prints each DataFrame in sequence

存储数据后,您几乎可以做任何事情。