因此,我遇到了NaN错误,请求df[‘Column’]只显示NaN,我已经将其缩小到代码的这一特定部分,我认为这与我Map数据的方式有关。有谁知道吗?
我的代码如下:
df['country_code'] = df['country_code'].replace(['?'], ) - *there were some '?' values so I wanted to make this empty so that i could later replace with the mean once I'd converted everything to integer*
country_code_map = {'AUS': 1, 'USA': 2, 'CAN': 3, 'BGD': 4, 'BRZ': 5, 'JP': 6, 'ID': 7, 'HR': 8, 'CH': 9, 'FRA': 10, 'FIN': 11}
df['country_code'] = df['country_code'].map(country_code_map)
df['country_code'] = pd.to_numeric(df['country_code'])
df['country_code'] = df['country_code'].replace([''], df['country_code'].mean)
如果需要任何额外信息,请让我知道。
2条答案
按热度按时间j91ykkif1#
我用以下方式创建了
df['country_code']
,您应该有类似的东西:产出:
现在,如果我执行您的代码,我得到的是:
您在输出中得到的是NaN值,而不是列中的平均值,原因如下。
让我们来看看这一行:
产出:
在这里,您没有擦除
?
,而是用NaN值填充它。所以当您读到最后一行时,您要做的是替换空字符串
''
,但是您有nan。您应该使用DataFrame.fillna
来填充NAN,如下所示:产出:
oknwwptz2#
所以我意识到问题出在我的Map和转换为整数。一旦我Map了数据,它就会自动执行此操作。
因此代码应如下所示:
然后,我可以检查平均值,而不需要像以前那样获得NaN值: