【问题标题】:How to import .txt data into a pandas dataframe?如何将 .txt 数据导入熊猫数据框?
【发布时间】:2020-03-24 19:47:12
【问题描述】:

我正在尝试从https://drive.google.com/file/d/1leOUk4Z5xp9tTiFLpxgk_7KBv3xwn5eW/view 的文件中导入数据 进入熊猫数据框。我试过使用

    data = pd.read_csv('data_engineering_assignment.txt',sep="|")

但我收到一条错误消息,提示“ParserError:标记数据时出错。C 错误:第 231 行应包含 9 个字段,看到 10 个” 我不想使用 'error_bad_lines=False' 并跳过数据行。

请帮忙。

【问题讨论】:

  • 您是否检查了第 231 行以了解导致错误的原因(为什么检测到 10 个而不是 9 个字段,更具体地说)?
  • 你是否尝试过使用编码=

标签: python pandas


【解决方案1】:

你可以指定列名,说明有10个:

import pandas as pd

cols = ['_id','name','price','website_id','sku','url','brand','media','description_text','other']
dataframe = pd.read_csv('./data_engineering_assignment.txt', names=cols, sep='|' )
dataframe['description_text'] = dataframe['description_text'].map(str) + dataframe['other']
dataframe.to_csv('./data_engineering_assignment_v2.txt', index=False, sep=',')

由于 pandas 必须猜测列数据类型,您会收到有关内存使用情况的警告,但没关系

【讨论】:

  • 您的解决方案创建了一个数据框,但将一些 description_text 推送到下一行的 _id 列中。 imgur.com/a/J8jHFFW关于如何解决这个问题的任何想法?我认为这是由于列中该单元格的流氓分隔符或空值造成的。
  • 当然,您可以在加载 csv 后将列合并回来。然后,您可以使用不同的分隔符保存文件。我在示例中选择了默认的“,”,但您可能必须选择不同的字符以避免再次陷入相同的问题。无论如何,您可以避免每次加载时保存和更正 csv。
  • imgur.com/a/6qGPUdt 正如您在此处看到的,数据不会进入“其他”列,而是创建一个新行并将其输入到 _id 列中。
【解决方案2】:

您的数据集中有问题,问题是有时,我在 description_text 中找到 |:例如,对于此 ID 5d0c7c4c312ff75188d84954,您有 |of A|X design,所以pandas 将第二部分视为一个新列(这就是你收到消息的原因:Expected 9 fields, but saw 10 我希望这能帮助您理解问题。

【讨论】:

  • 明白。关于如何解析/清理这些数据以便我可以使用它的任何想法?
猜你喜欢
  • 1970-01-01
  • 2021-06-24
  • 2018-11-19
  • 2019-06-05
  • 1970-01-01
  • 2020-07-18
  • 2020-02-13
  • 2020-04-05
  • 1970-01-01
相关资源
最近更新 更多