一次操作多个CSV文件

时间:2017-04-17 20:43:55

标签: python csv pandas os.walk

我目前正在学习如何使用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文件(一种表格,第一行是标题,其余表格在下面) 诀窍是我希望能够随时访问这些(打印和编辑),我在那里写的只打印它们。如果我在其后的任何地方写print(paths)prints(tables)它只打印最后的CSV文件及其数据,即使我认为它应该做同样的事情。

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

谢谢!

1 个答案:

答案 0 :(得分:3)

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

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

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