gpt4 book ai didi

python - Pandas 数据框上的用户定义函数

转载 作者:太空宇宙 更新时间:2023-11-04 02:40:01 25 4
gpt4 key购买 nike

这是我的代码:

dfnew=pd.DataFrame({ 'year': [2015,2016],
'month': [10, 12],
'day': [25,31]})
print(dfnew)

def calc(yy,n):

if yy==2016:
return yy*2*n
else:
return yy

dfnew['nv']=map(calc, dfnew['year'],2)
print(dfnew['nv'])

如何让这段代码无错误地运行?我希望该函数仅应用于所有行的数据框的“年”列,并将输出存储在同一数据框的名为“nv”的新列上。

最佳答案

需要apply对于自定义函数:

dfnew['nv']= dfnew['year'].apply(lambda x: calc(x, 2))
print (dfnew)
day month year nv
0 25 10 2015 2015
1 31 12 2016 8064

更好的是使用mask按条件更改值:

dfnew['nv']= dfnew['year'].mask(dfnew['year'] == 2016, dfnew['year'] * 2 * 2)
print (dfnew)
day month year nv
0 25 10 2015 2015
1 31 12 2016 8064

详细信息:

print (dfnew['year'] == 2016)
0 False
1 True
Name: year, dtype: bool

关于python - Pandas 数据框上的用户定义函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46809615/

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