【问题标题】:How to read file delimited by space and :如何读取由空格分隔的文件和:
【发布时间】:2018-04-08 06:10:16
【问题描述】:

我的数据格式为:

1 440:0.033906222568727 730:0.0424739279722748 1523:0.0773048148348295 1893:0.0433930684646909

1 271:0.0646290650479301 405:0.0653366028581683 584:0.0744087075001463 770:0.0717824200677465

1 577:0.0679078686536282 761:0.0506946081073312

-1 440:0.0437614564467411 798:0.0370070258333617 831:0.0549176430011721 1681:0.0715035548706038 1963:0.102891965918849 2667:0.0461603813033019 2899:0.0672807783934756

我想以表格的形式输出:

1 440 0.033906222568727 ......
1 271 0.0646290650479301 ...... 
1 271 0.0646290650479301 ......
1 577 0.0679078686536282 .........

我尝试过使用

 x = pd.read_csv('rcv1_train.binary', sep = "\s+|:",  engine = 'python')

得到一个错误:

pandas.errors.ParserError:预期第 134 行中的 413 个字段,看到 419。错误可能是由于使用多字符分隔符时忽略引号引起的。

【问题讨论】:

标签: python pandas csv


【解决方案1】:

你可能在第 134 行有错误的数据

尝试使用error_bad_lines=False

x = pd.read_csv('rcv1_train.binary', sep = "\s+|:",  engine = 'python', error_bad_lines=False)

【讨论】:

  • 这给了我所有的 Nan 值,让我跳过了几乎一半的行
  • 那是因为CSV中的数据不正确。数据不正确的行将用 Nan vals 填充
  • @Rakesh “如果为 False,那么这些“坏行”将从返回的 DataFrame 中删除。” “坏”行将不会用 Nans 填充。 pandas.pydata.org/pandas-docs/stable/generated/…
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-04-29
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-04-15
  • 2021-10-25
相关资源
最近更新 更多