【问题标题】:Unable to get correct output from tsv file using pandas无法使用熊猫从 tsv 文件中获取正确的输出
【发布时间】:2017-12-12 07:37:14
【问题描述】:

我有一个 tsv 文件,我试图在 pandas 的帮助下读取它。文件的前两行没有用,需要忽略。虽然,当我得到输出时,我以两列的形式得到它。第一列的名称是 Index,第二列的名称是 csv 文件中的随机行。

import pandas as pd

data = pd.read_csv('zahlen.csv', sep='\t', skiprows=2)

请参考下面的截图。

第二列名称为黑色粗体,是文件中的行之一。此外,使用 '\t' 作为分隔符不会分隔不同列中的值。我为此使用 Spyder IDE。我在这里做错了吗?

【问题讨论】:

  • 我认为你需要一个 header=None 作为 read_csv 中的参数
  • 谢谢@djk47463。使用 header=None 从列名中删除了行,但值仍然没有拆分到不同的列中。我需要明确拆分吗?

标签: python csv pandas spyder


【解决方案1】:

试试这个:

data = pd.read_table('zahlen.csv', header=None, skiprows=2)

read_table() 更适合 tsv 文件,read_csv() 是它的更专业版本。然后header=None 将生成第一行数据,而不是标题。

【讨论】:

  • 使用上面的代码,我只得到一个没有标题的单列输出。
  • 你确定你有标签作为分隔符吗?你能把sep='\s+'添加到上面的read_table(),看看会发生什么?
  • 添加 sep.我也不太确定文件中的分隔符,但到目前为止我已经尝试过'\t'、'' 和'\s+'。不幸的是,所有三个都返回相同的结果。
  • 是的,我也是。使用pd.read_table('zahlen.csv', skiprows=1, header=0),我什至可以得到正确的列名:Verteilung 1Verteilung 50
  • 所以这次我尝试了data = pd.read_table('zahlen.csv', header=None, skiprows=2),它工作得非常完美,正如我所料。谢谢你的帮助:)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2021-07-06
  • 1970-01-01
  • 2019-01-26
  • 2022-11-10
  • 1970-01-01
  • 1970-01-01
  • 2021-01-06
相关资源
最近更新 更多