繁体   English   中英

For 循环不适用于 pandas.read_csv

[英]For Loop Not Working With pandas.read_csv

我正在使用 pandas 读取一些 csv 文件并遇到错误。

我有我想要阅读的文件列表:

files = ['file1.csv', 'file2.csv', 'file3.csv']

当我这样做时:

import pandas as pd
pd.read_csv('file1.csv').head()
pd.read_csv('file2.csv').head()
pd.read_csv('file3.csv').head()

一切正常。 然而,这显然不是我想要做的。 我在想这会起作用:

import pandas as pd
for file in files:
   pd.read_csv(file).head()

但是当我运行这段代码时,我什么也得不到。

我相信这不是我的文件列表或类似内容的错误,因为当我这样做时: import pandas as pd for i in range(2): pd.read_csv('file1.csv').head( )

我什么也没得到,而不是预期的前 5 行 file1.csv 两次。

为什么会这样?

注意:我使用的是 Jupyter 笔记本,所以我不必打印头部或类似的东西,当我执行pd.read_csv('file1.csv').head()时它会自动出现

我认为你想要的是这样的:

res = []
for file in files:
    df = pd.read_csv(file)
    # print(df.head())   if you insist.
    res.append(df)

现在你可以对 res 中的数据框列表做任何你喜欢的事情。 让我们将它们连接起来:

df = pd.concat(res)

或者,也许你需要看到这一切都有效的是:

import pandas as pd
for file in files:
    print(pd.read_csv(file).head())

试试下面的代码,我强烈建议你输入文件的整个文件路径,而不是只提到文件名

import pandas as pd

files = ['file1.csv', 'file2.csv', 'file3.csv']

for file in files:
   temp = pd.read_csv(file)
   print(temp.head())

我相信在您的代码中一切正常。 在 Jupyter notebook 中,它并不总是自动打印结果。

如果要检查 Jupyter notebook 如何打印结果,请检查以下代码:

x = [1,2]
x

这将显示结果 [1,2]

len(x)

这将显示 2

for i in range(3):
    len(x)

另一方面,这不会显示任何内容。

请考虑将结果保存在 for 循环中,或者每次在 for 循环中打印。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM