处理熊猫数据框中的缺失值作为张量流的输入

时间:2020-01-26 04:48:32

标签: python pandas dataframe tensorflow data-analysis

我有一个看起来像这样的数据框:

    ID    Age    Sex    Loc
1   1     33     F      S
2   2     64     M      C
3   3     49     M      C
4   4            M      S
5   5     31     F      U

还有其他列,但这足以解决问题。我将其用作神经网络的输入。我的问题是缺少年龄值。其他列具有所有数据,但整个数据集(培训和测试)中大约缺少5%的年龄值。我可以轻松地跳过那些行,但是当我想将测试集中的ID号与预测相关联时,这会导致问题,因为索引不再匹配。那么,如何清理该列,使其仍然可以在NN中运行而不会弄乱我的结果呢?我应该只假设所有容器的总数的平均值吗?

在我循环遍历并将M / F转换为1/0并将Loc转换为0/1/2时跳过了行。我的网络准确率达到了81%。我只是想知道是否可以找到一种方法来保留这些行,使其更准确,而当我深入研究时,这似乎在现实世界的数据中经常会出现。

假设我是python的白痴,但是在javascript / angular / databases / etc方面拥有21年的webdev经验。 ;)感谢您对此的任何建议。

1 个答案:

答案 0 :(得分:3)

这里没有当前答案,您基本上必须尝试看看有什么作用。

方法1: 像您建议的那样,您可以删除所有缺少值的行。

df.dropna(axis=0)

方法2: 用常量值填充它们,例如0。

 df.fillna(0)

方法3: 用中位数或均值列值填充

df.fillna(df.mean())