python - Pandas 代码将大于 0.5 的值舍入为 1
问题描述
我有一个数据框列并想对其进行舍入。如果该值等于 0.5,则将其四舍五入为 0,但如果该值大于或等于 0.5,我希望它为 1。有人可以帮忙吗
解决方案
函数中似乎存在一个问题,pandas.round
它没有四舍五入。在这种情况下,您可以使用内置0.5
1
round
applymap
import pandas as pd
import numpy as np
def getRound(x):
return(round(x))
df = pd.DataFrame(np.random.random([3, 3]),
columns=['A', 'B', 'C'], index=['first', 'second', 'third'])
df
看起来像这样
A B C
first 0.474011 0.082135 0.476545
second 0.313154 0.265458 0.523410
third 0.057491 0.141635 0.037582
将一个值更改为0.5
df['A'][1]=0.5
应用 lambda 函数
df.applymap(getRound)
输出:
A B C
first 0.0 0.0 0.0
second 1.0 0.0 1.0
third 0.0 0.0 0.0
推荐阅读
- server - nutch 不抓取允许所有爬虫通过 robots.txt 的网站
- ruby-on-rails - 如何确认 Rails 模型中存在附件?
- apache - 带有 Nginx 和 Apache 的 Ubuntu - 访问 Nginx 登录页面的问题
- google-apps-script - 我可以以某种方式强制 onOpen 触发器吗?
- websocket - 用于测试我的代码的在线 WebSocket 服务器
- python - 使用相同的按钮在 tkinter 中选择两个(非连续的)文件
- android - 使用 LoginManager 不工作的 Facebook 登录 - Fragment Android 中的自定义登录按钮
- java - 构建 Web 应用程序时的 Spring Boot + React 集成/安全性
- reactjs - 从 TypeScript 中的 useContext 解构值时出错
- azure-functions - 操作为 Azure 函数返回了无效的状态代码“禁止”