【问题标题】:Reading rpt files with pandas用 pandas 读取 rpt 文件
【发布时间】:2017-12-06 23:28:39
【问题描述】:

我使用以下方法将 rpt 数据读取到 pandas:

import pandas as pd
df = pd.read_fwf("2014-1.rpt", skiprows=[1], nrows=150)

我其实是关注here 但是,对于某些列,分隔不准确。这是我得到的样本:

Country   Order Date Device   Category
UK        2014-01-03 Desktop  Shoes
IT        2014-01-03 Desktop  Shoes
FR        2014-01-04 Desktop  Dress
FR        2014-01-04 Tablet   Dress
US        2014-01-05 Desktop  Bags
US        2014-01-06 Desktop  Bags
UK        2014-01-07 Tablet   Dress

例如,它将订单日期和设备列作为单个列读取。其实这只是一个例子,这样的栏目还有很多。 如何解决?你有什么主意吗? 实际上这些有问题的列可能有固定的宽度

【问题讨论】:

  • 您检查过read_fwf 文档,尤其是colspecs 和delimiters 参数吗?如果 python 没有正确识别它们,您可能需要手动输入 colspecspandas.pydata.org/pandas-docs/stable/generated/…
  • 我试图用宽度来阅读它,我应该使用列名作为 colspecs 对吗?
  • colspecs 应该类似于 [(0,6), (8,15), ...] 取决于列的长度,每列一对整数。
  • 哦好吧让我试试
  • 所以我必须做到128列,没有简单的方法吧?

标签: python pandas


【解决方案1】:

这个问题很老,但这里有一个答案。您可以使用 pandas 将其读取为 csv。我已经将它用于各种 rpt 文件,并且效果很好。

import pandas as pd
df = pd.read_csv("2014-1.rpt", skiprows=[1], nrows=150)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-11-09
    • 2021-12-28
    • 1970-01-01
    • 2022-09-23
    • 2019-06-28
    • 1970-01-01
    相关资源
    最近更新 更多