我有一个包含5列的DataFrame,我需要聚合的列是字符串,并且具有NaN值。 我尝试用0替换nan值,然后将列转换为数字,但是在执行gruopby和聚合函数时仍然出现“ DataError:没有要聚合的数字类型”。
output$hist <- renderPlot({
data <- simulate()$data
model <- simulate()$model
intercept = model[["coefficients"]][["(Intercept)"]]
intercept_g1 = model[["coefficients"]][["group1"]]
intercept_g2 = model[["coefficients"]][["group2"]]
ggplot(data, aes(x=response, fill=group)) +
geom_density(data = subset(data, group="group1"), alpha=.5) +
geom_density(data = subset(data, group="group2"), alpha=.5) +
geom_density(data = subset(data, group="group3"), alpha=.5) +
geom_vline(xintercept=intercept) +
geom_vline(xintercept=intercept_g1) +
geom_vline(xintercept=intercept_g2)
})
答案 0 :(得分:1)
有2个问题,您忘记分配回去,并且如果errors ='ignore'
和列中至少有一个非可写值,则它返回的列将保持不变:
pd.to_numeric(df['Profit (in millions)'], errors ='ignore')
错误:{'ignore','raise','coerce'},默认为'raise'
如果'raise',则无效的解析将引发异常
如果为'coerce',则无效的解析将设置为NaN
如果“ 忽略”,则无效的解析将返回输入
因此使用errors ='coerce'
并将输出返回到列:
df['Profit (in millions)'] = pd.to_numeric(df['Profit (in millions)'], errors ='coerce')