我目前正在学习如何使用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()
- 我只是不知道为什么它只能工作一次。
谢谢!
答案 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
存储数据后,您几乎可以做任何事情。