如何解决For循环不适用于pandas.read_csv
我正在使用熊猫读取一些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()
但是当我运行这段代码时,我什么也没得到。
我确信这不是我的文件列表或类似内容的错误,因为当我这样做时: 将熊猫作为pd导入 对于我在范围(2)中: pd.read_csv('file1.csv')。head()
我什么也没得到,而是预期的file1.csv的前5行两次。
为什么会这样?
注意:我使用的是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笔记本中,它并不总是自动打印结果。
如果要检查Jupyter笔记本如何打印结果,请检查以下代码:
x = [1,2]
x
这将显示结果[1,2]
len(x)
这将显示2
for i in range(3):
len(x)
另一方面,它什么也不会显示。
请考虑将结果保存在for循环中,或每次在for循环中打印。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。