不同数据框列中的列表中缺少的缺失值将替换为NaN

时间:2019-02-22 09:40:02

标签: python pandas

我有两个文件。一个文件包含我的属性的详细信息,名称为detail.csv,另一个文件是数据文件,其中包含有关这些属性的数据,名称为data.csv

在detail.csv文件中,我们有两列“属性”和“缺少值的表示形式”,这两列提供属性的名称,而“缺少值的表示形式”列出了被用作该属性的缺失值的值的列表。相同的已在下面给出。

Attribute   Missing value representation
Height       [-1,0]
Weight       [X]
Salary       []
Gender       [XX]

现在,使用此信息,我必须用NaN替换数据文件“ data.csv”中所有相应属性的所有缺失值。数据文件中的数据表示为:

Height   Weight  Salary  Gender
-1       50      20000    F
132      X                XX

我该怎么做?

1 个答案:

答案 0 :(得分:1)

假设您阅读了CSV,并且它们看起来像:

  Attribute Missing value representation
0    Height                      [-1, 0]
1    Weight                          [X]
2    Salary                           []
3    Gender                         [XX]

   Height Weight Salary Gender
0      -1     50  20000      F
1     132      X            XX

您可以执行以下操作:

import numpy as np
for key,row in details.iterrows():
    for el in row['Missing value representation']:
        data[row['Attribute']].replace(el,np.NaN,inplace=True)

您为每一列获取所有可能的缺失值表示形式,浏览这些列并将其替换为NaN。