首页 > 解决方案 > Pandas 代码将大于 0.5 的值舍入为 1

问题描述

我有一个数据框列并想对其进行舍入。如果该值等于 0.5,则将其四舍五入为 0,但如果该值大于或等于 0.5,我希望它为 1。有人可以帮忙吗

标签: pythonpython-3.xpandas

解决方案


函数中似乎存在一个问题,pandas.round它没有四舍五入。在这种情况下,您可以使用内置0.51roundapplymap

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

推荐阅读