【问题标题】:Import a text file with Pandas as a Dataframe where columns can contain multiple words, single words, or numbers将带有 Pandas 的文本文件作为 Dataframe 导入,其中列可以包含多个单词、单个单词或数字
【发布时间】:2021-11-18 11:28:00
【问题描述】:

我收到了一个 .txt 文件,其中包含 10000 行,其中包含电影的标题、imdb 评级、票数、类型和其他信息。我们应该将它导入到带有熊猫的数据框中,但我不知道如何告诉熊猫在哪里正确分隔列。比如第一行是电影《肖申克的救赎》,第二行是《低俗小说》。 .txt 中的信息没有逗号分隔,只有空格。所以 Pandas 将“The”“Shawshank”“Redemption”作为单独的字段阅读。我应该如何告诉 Pandas 如何正确分解 .txt 文件?我现在的代码是:

from IPython.core.interactiveshell import InteractiveShell
InteractiveShell.ast_node_interactivity = "all"
import pandas as pd
import numpy as np
labels = ['imdbID','title','year','score','votes','runtime','genres']
df = pd.read_csv('imdb_top_10000.txt', sep = ' ')

我收到此错误代码:

ParserError:标记数据时出错。 C 错误:预计第 10 行中有 6 个字段,看到 12

【问题讨论】:

  • 请在问题中输入文件内容的一部分,可以是5行。这将帮助那些想帮助你的人。
  • Plis,你能放一些文件吗?例如。
  • 更好地显示文件中的示例数据。也许有一些方法可以识别分离。如果你生成了这个文件,那么最好在创建这个文件的程序中更改代码。

标签: python pandas dataframe


【解决方案1】:

您使用了错误的分隔符,错误代码表明使用您定义的分隔符输出的字段比预期的多,这就是表格的格式不一致。

import pandas as pd

labels = ['imdbID','title','year','score','votes','runtime','genres']
df = pd.read_csv('test.txt', sep = '\t', names = labels)

我快速浏览了一个类似的数据文件并使用制表符分隔符,\t 应该可以为您解决问题。您还可以在构建数据框时直接传递列名。

事先了解您的数据输入结构总是值得的。

【讨论】:

  • 非常感谢。这是一个入门课程,我仍在学习使用 Pandas 的所有不同方法和不同的条件。
  • 如果你觉得这个有用,欢迎采纳,希望你学得好!
猜你喜欢
  • 2017-07-24
  • 1970-01-01
  • 2019-06-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-01-03
  • 1970-01-01
  • 2021-02-23
相关资源
最近更新 更多