加载带有标题行和“?”的CSV数据集对于缺失值

时间:2017-08-23 09:19:28

标签: python csv numpy missing-data

我想从带有NumPy函数.csv的{​​{1}}文件加载dataset (link to external page)。数据集包含浮点数。但是,列有标题并且缺少数据(由'?'实现)。

我该如何处理这些问题?

1 个答案:

答案 0 :(得分:0)

根据您在评论中链接的数据集,您可以使用np.genfromtxt来指定哪些值被视为缺失('?')以及要跳过多少行,因为它是& #34;头" (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   
...