python - 舍入包含数字和字符串的数据框中的所有数字?
问题描述
我有一个包含浮点数和字符串的数据框。我想将所有浮点数四舍五入到小数点后一位。
下面描述了一个示例 df;
Y 1 2 3
X
1 5.19 "a" "a"
2 6.68 6.22 "b"
3 "b" 8.23 8.55
现在,我想将所有浮点数四舍五入到小数点后 1 位。我的实际数据框比这大得多,但字符串 arr 只有“a”或“b”。
我试过这样做df[(df != "a") & (df != "b")] = df.round(1)
,但这并没有改变什么?
解决方案
尝试pd.to_numeric
df.apply(pd.to_numeric,errors='coerce').round(1).fillna(df)
或者:
s = df.stack()
pd.to_numeric(s,errors='coerce').round(1).fillna(s).unstack()
Y 1 2 3
X
1 5.2 "a" "a"
2 6.7 6.2 "b"
3 "b" 8.2 8.6
根据评论编辑:
s = df.stack()
s1 = pd.to_numeric(s,errors='coerce').round(1)
s1.astype(str).add('%').mask(s1.isna(),s).unstack()
Y 1 2 3
X
1 5.2% "a" "a"
2 6.7% 6.2% "b"
3 "b" 8.2% 8.6%
推荐阅读
- swift - MacOs Swift条形图没有响应点击chartValueSelected
- django - Django -Python Copyfile 使用 win32api 权限被拒绝
- javascript - 为什么原型中的“this”指的是全局上下文,而声明中的“this”指的是函数?
- javascript - 在 TypeScript 中,如何使用泛型提取类实例类型?
- excel - 获取具有另一列过滤范围的唯一列表
- sql - 如何正确地将两列中的日期谱系分配给彼此?
- ios - 带有菜单的 ToolbarItem 很难点击 - SwiftUI
- javascript - 我的 api 调用以错误结束:套接字挂断,我正在使用节点 js 通过 axios 发出并获取调用请求
- javascript - React Native Expo:用户选择后立即将图像加载到 firabse 存储
- docker - Docker 映像构建错误:设备上没有剩余空间