首页 > 解决方案 > 在 Python 中从范围的分类变量(例如 30-35 的平均值)中查找平均值

问题描述

我想计算范围类别变量的平均值。这是示例:

dt = {"var1": ["1-2", "3-4","6-8","Missing"], 
      "Wanted result": ["1.5", "3.5","7","Missing"]}
pd.DataFrame(dt)
    var1      Wanted result
0   1-2       1.5
1   3-4       3.5
2   6-8       7
3   Missing   Missing

如何从“var1”获得“想要的结果”?

标签: pythonpandasdataframe

解决方案


你可以splitto_numeric

s=df.var1.str.split('-',expand=True).apply(pd.to_numeric,errors='coerce').mean(axis=1).fillna(df.var1)
0        1.5
1        3.5
2          7
3    Missing
dtype: object
df['wanted']=s

推荐阅读