【问题标题】:Importing a tab-separated table from a url to produce a pandas dataframe with each column correctly put into separate columns从 url 导入制表符分隔的表以生成 pandas 数据框,每列正确放入单独的列
【发布时间】:2017-09-14 19:17:32
【问题描述】:

我有一个位于 URL 的汽车数据表。数据似乎是制表符分隔的。这是网址:

auto_table = 'https://archive.ics.uci.edu/ml/machine-learning-databases/auto-mpg/auto-mpg.data'

这里有几行数据:

18.0   8   307.0      130.0      3504.      12.0   70  1    "chevrolet chevelle malibu"
15.0   8   350.0      165.0      3693.      11.5   70  1    "buick skylark 320"
18.0   8   318.0      150.0      3436.      11.0   70  1    "plymouth satellite"
16.0   8   304.0      150.0      3433.      12.0   70  1    "amc rebel sst"
17.0   8   302.0      140.0      3449.      10.5   70  1    "ford torino"
15.0   8   429.0      198.0      4341.      10.0   70  1    "ford galaxie 500"

我尝试使用 pandas.read_table('auto_table') 将数据导入为 pandas 数据框。但是,Python 仅将数据导入 2 列:第一列包含所有这些数字/浮点数/整数列,第二列正确包含所有字符串(汽车名称)。

如何使用 Python 导入这些数据以生成一个 pandas 数据框,其中所有这些数据都正确分离到它们自己的唯一列中。我查看了 pandas.read_table 的文档,which is here,但我似乎无法弄清楚如何正确导入表。

【问题讨论】:

    标签: python pandas import


    【解决方案1】:

    使用 sep

    pd.read_csv('https://archive.ics.uci.edu/ml/machine-learning-databases/\
    auto-mpg/auto-mpg.data', sep='\s+')
    

    或者

    df=pd.read_csv('https://archive.ics.uci.edu/ml/machine-learning-databases/\
    auto-mpg/auto-mpg.data', delim_whitespace=True)
    

    【讨论】:

    • 做到了。谢谢!
    【解决方案2】:

    好像是固定宽度的文件,所以我们可以使用pandas.read_fwf()

    In [7]: df = pd.read_fwf(auto_table, header=None)
    
    In [8]: df
    Out[8]:
            0  1      2      3       4     5   6  7                            8
    0    18.0  8  307.0  130.0  3504.0  12.0  70  1  "chevrolet chevelle malibu"
    1    15.0  8  350.0  165.0  3693.0  11.5  70  1          "buick skylark 320"
    2    18.0  8  318.0  150.0  3436.0  11.0  70  1         "plymouth satellite"
    3    16.0  8  304.0  150.0  3433.0  12.0  70  1              "amc rebel sst"
    4    17.0  8  302.0  140.0  3449.0  10.5  70  1                "ford torino"
    5    15.0  8  429.0  198.0  4341.0  10.0  70  1           "ford galaxie 500"
    6    14.0  8  454.0  220.0  4354.0   9.0  70  1           "chevrolet impala"
    ..    ... ..    ...    ...     ...   ...  .. ..                          ...
    391  36.0  4  135.0  84.00  2370.0  13.0  82  1          "dodge charger 2.2"
    392  27.0  4  151.0  90.00  2950.0  17.3  82  1           "chevrolet camaro"
    393  27.0  4  140.0  86.00  2790.0  15.6  82  1            "ford mustang gl"
    394  44.0  4   97.0  52.00  2130.0  24.6  82  2                  "vw pickup"
    395  32.0  4  135.0  84.00  2295.0  11.6  82  1              "dodge rampage"
    396  28.0  4  120.0  79.00  2625.0  18.6  82  1                "ford ranger"
    397  31.0  4  119.0  82.00  2720.0  19.4  82  1                 "chevy s-10"
    
    [398 rows x 9 columns]
    

    【讨论】:

      猜你喜欢
      • 2022-11-10
      • 2020-12-08
      • 1970-01-01
      • 2020-06-11
      • 1970-01-01
      • 2017-11-23
      • 2021-08-26
      • 1970-01-01
      • 2017-05-13
      相关资源
      最近更新 更多