【问题标题】:Error when trying to read multiple .csv files in Jupyter Notebook using python尝试使用 python 在 Jupyter Notebook 中读取多个 .csv 文件时出错
【发布时间】:2020-11-15 15:22:28
【问题描述】:

我得到一个包含 1000 个 .csv 文件(data0、data1、data2..........、data999)的文件,我需要读取所有这些文件。所以,我自己试了一下。 这是我的方法:读取 data0.csv 并对其执行转置,然后循环遍历所有 data*.csv 文件,然后附加它们。但我遇到了一个错误。有人可以帮我吗? 读取data0.csv文件并转置:

df = pd.read_csv('data0.csv')  
print (df.head(10))
df_temp = df
df_main = df_temp.transpose()
df_main

new_df = [df_main]
for i in range(1000):
filename = "data%d.csv"%i
df_s = pd.read_csv(filename)
new_df= pd.concat([df_s])
new_df[1]

循环遍历 1000 个文件,转置和连接:

在转置和附加所有 1000 个 csv 文件后,我应该得到 1000 行 x 150 列。但我不明白。

【问题讨论】:

  • 文件的标题是否相同?
  • 是的,[链接到数据集的标题]res.cloudinary.com/dnec0sr03/image/upload/v1595737510/…我也放了我的代码图片。
  • 我相信stackoverflow.com/questions/20906474/… 应该会回答你的问题。另外,在发新问题的时候,尽量贴出自己写的代码示例,而不是加图片,这样方便别人调试。
  • 嗨,我发布了示例代码以及错误。请您现在检查一下。在发布之前我已经看到了 StackOverflow 链接,但没有成功。

标签: python pandas csv jupyter-notebook


【解决方案1】:

我无法对此进行测试,因为您没有以文本形式提供文件示例。下次请尝试提供minimal reproducible example

我的解决方案是@Ranika Nisal 提到的this SO post 的细微变化。

dfs = [pd.read_csv(f'data{i}.csv') for i in range(1000)]
df = pd.concat(dfs, axis=0, ignore_index=True)

您的解决方案没有生成 pd.concat() 工作所需的数据帧列表。此外,您尝试使用 new_df[1] 访问第二个数据框,但列表中只有一个元素。这就是您收到KeyError 的原因。

【讨论】:

    猜你喜欢
    • 2021-09-08
    • 1970-01-01
    • 1970-01-01
    • 2021-06-16
    • 2021-10-09
    • 2020-08-07
    • 1970-01-01
    • 2020-10-15
    • 1970-01-01
    相关资源
    最近更新 更多