python - 在 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”获得“想要的结果”?
解决方案
你可以split
与to_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
推荐阅读
- javascript - 如何在对象中的数组上使用方法
- c# - 如何检测 EXE 文件是否在命令行界面中启动
- python-3.x - 我们如何在本地使用带有 ndb 的 python3 运行谷歌应用引擎
- docker - 读取不在主机中的 docker 容器的 .log 文件
- mysql - 如何在选择语句中用不同的列名从 sql 中命名一个相似的列
- javascript - 如何在选项标签中添加上标选择下拉列表 1st 2nd 3rd 4th 5th。1ST 我想要 S 大写字母,但我试过 s 将转换为小写
- html - 在Python中以某种形式的列表拆分HTML
- javascript - SWUP JS 外部函数调用
- java - AWS Java 开发工具包 SSL 证书
- css - Firebase 没有正确显示 CSS - 特别是媒体查询