gpt4 book ai didi

python - 使用 apply 函数在 pandas 中创建一个具有舍入值的新列

转载 作者:行者123 更新时间:2023-12-01 06:45:19 25 4
gpt4 key购买 nike

我的数据框如下:

name  |  salary 
Tom | 10200
Kate |
Mi | 32311

关于salary和round_salary,kate的值是'',我用''替换它的值,所以它在单元格中不显示任何内容。

问题:

我想创建一个新的工资列,将工资四舍五入到最接近的 10,000。

结果如下所示

name  |  salary | round_salary
Tom | 10200 | 10000
Kate | |
Mi | 32311 | 30000

我的代码如下:

def round_income(salary):
if '' in salary:
return ''
else:
return salary.round(decimals = -4)

income.apply(lambda x: round_salary(x['income']), axis=1)

输出错误是:

KeyError: ('salary', 'occurred at index 0')

有人知道怎么解决吗?我发现 map 或应用功能可以解决它,提前感谢任何人的帮助。 〜

最佳答案

如果没有缺失值但非数字为空值的解决方案:

income['salary'] = (pd.to_numeric(income['salary'], errors='coerce')
.round(decimals = -4)
.fillna(''))
print (income)
name salary
0 Tom 10000
1 Kate
2 Mi 20000

缺少值的解决方案 - salary 列中的所有数据都是数字:

income['salary'] = income['salary'].round(decimals = -4).astype('Int64')
print (income)
name salary
0 Tom 10000
1 Kate NaN
2 Mi 20000

关于python - 使用 apply 函数在 pandas 中创建一个具有舍入值的新列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59248478/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com