替换分类列中缺少的分类值

时间:2017-05-10 13:26:37

标签: python pandas numpy

我想在列中存在的相同类别的分类列中插入缺失值,但我想随机插入它们。

Column1:  Column2:
yes          no
no           yes
?            no
yes          ?
no           ?
?            ?

我想随机插入"是"或"不"在这些缺失值。我该怎么做?

2 个答案:

答案 0 :(得分:1)

让我们使用fillnanp.random.choice

import numpy as np
df.replace('?',np.nan, inplace=True) #if you need to do this
df = df.fillna(np.random.choice(['yes','no'])

输出:

  Column1: Column2:
0      yes       no
1       no      yes
2      yes       no
3      yes      yes
4       no      yes
5      yes      yes

或者,您不需要替换那些“?”

df.replace("?",np.random.choice(['yes','no']), inplace=True)

答案 1 :(得分:0)

df = pd.DataFrame({'col1':['yes', 'no', '?', 'yes', '?'], 'col2': ['?', 'no', 'yes', 'yes', '?']})    
df.applymap(lambda x: np.random.choice(['yes','no']) if x=='?' else x)

输出:

col1    col2
yes     no
no      no
yes     yes
yes     yes
yes     no