【问题标题】:Load a CSV dataset with header lines and "?" for missing values加载带有标题行和“?”的 CSV 数据集对于缺失值
【发布时间】:2018-01-31 19:12:38
【问题描述】:

我想使用 NumPy 函数 loadtxt.csv 文件加载我的 dataset (link to external page)。数据集包含浮点数。但是,列有标题并且缺少数据(由“?”具体化)。

我该如何处理这些问题?

【问题讨论】:

  • np.genfromtxtmissing_valuesskip_header。但是如果没有(部分)您的文件,就不可能提供更多指导(至少对我而言)。
  • @MSeifert 是的,实际上它看起来不错。我的数据集如下:archive.ics.uci.edu/ml/datasets/…
  • numpy.loadtxt(fname, dtype=,skiprows=0),这将删除标题。缺失数据取决于您的数据集,您可以使用 pandas 有效地处理这两个问题。

标签: python csv numpy missing-data


【解决方案1】:

根据您在 cmets 中链接的数据集,您可以使用 np.genfromtxt,它允许指定哪些值被视为缺失 ('?') 以及要跳过多少行,因为它是“标题”(1):

>>> import numpy as np

>>> np.genfromtxt(filename, delimiter=',', missing_values=['?'], skip_header=1)
array([[ 18.,   4.,  15., ...,   0.,   0.,   0.],
       [ 15.,   1.,  14., ...,   0.,   0.,   0.],
       [ 34.,   1.,  nan, ...,   0.,   0.,   0.],
       ..., 
       [ 25.,   2.,  17., ...,   0.,   1.,   0.],
       [ 33.,   2.,  24., ...,   0.,   0.,   0.],
       [ 29.,   2.,  20., ...,   0.,   0.,   0.]])

但也许更适合这种任务的是pandas.read_csv

>>> import pandas as pd

>>> pd.read_csv(filename, na_values='?')
     Age  Number of partners  First intercourse  ...
0     18                 4.0               15.0   
1     15                 1.0               14.0   
2     34                 1.0                NaN   
3     52                 5.0               16.0   
4     46                 3.0               21.0   
5     42                 3.0               23.0   
6     51                 3.0               17.0   
7     26                 1.0               26.0   
8     45                 1.0               20.0   
9     44                 3.0               15.0   
10    44                 3.0               26.0   
11    27                 1.0               17.0   
12    45                 4.0               14.0   
13    44                 2.0               25.0   
14    43                 2.0               18.0   
...

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-11-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-05-12
    • 2023-03-29
    • 1970-01-01
    相关资源
    最近更新 更多