Python 在数据框中填写缺失的值错误
假设“df”是数据帧对象,“ca”是变量之一Python 在数据框中填写缺失的值错误,python,pandas,dataframe,Python,Pandas,Dataframe,假设“df”是数据帧对象,“ca”是变量之一 >>> df.ca.value_counts() 0.0 176 1.0 65 2.0 38 3.0 20 ? 4 Name: ca, dtype: int64 如您所见,我缺少四个值。我想填一下。使用以下代码: >>> df.loc[df.ca == '?', 'ca'] = 0.0 0.0 176 1.0 65 2.0 38 3.0 2
>>> df.ca.value_counts()
0.0 176
1.0 65
2.0 38
3.0 20
? 4
Name: ca, dtype: int64
如您所见,我缺少四个值。我想填一下。使用以下代码:
>>> df.loc[df.ca == '?', 'ca'] = 0.0
0.0 176
1.0 65
2.0 38
3.0 20
0.0 4
Name: ca, dtype: int64
为什么我有5个独特的价值观?我想把第五行合并到第一行,即
0.0 176 + 4 = 180
1.0 65
2.0 38
3.0 20
如何修复它?因为
'?
是您的值之一,我知道df.ca
要么是dtype
对象
要么是字符串
。当您替换('?',0.)时
现在既有string'0.0'
又有float0.0
。将all转换为float后,应该不会有问题
df.ca.replace('?', 0.).astype(float).value_counts()
0.0 180
1.0 65
2.0 38
3.0 20
dtype: int64
以下几点也很有效:
In [193]: df = pd.DataFrame({'ca': [0.0]*176 + [1.0]*65 + [2.0]*38 + [3.0]*20 + ['?']*4})
In [194]: df.ca.value_counts()
Out[194]:
0.0 176
1.0 65
2.0 38
3.0 20
? 4
Name: ca, dtype: int64
In [195]: df.loc[df.ca == '?', 'ca'] = 0.0
In [196]: df.ca.value_counts()
Out[196]:
0.0 180
1.0 65
2.0 38
3.0 20
Name: ca, dtype: int64