我有一个数据框列,并想将其取整。如果该值等于0.5,则将其舍入为0,但是如果该值大于或等于0.5,我希望将其取为1。 有人可以帮忙吗
答案 0 :(得分:0)
在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