在数据框中的浮点数据类型上应用if-else循环

2024-05-28 19:47:03 发布

您现在位置:Python中文网/ 问答频道 /正文

我想在具有浮点值的列上应用此函数,我不想将值更改为int数据类型,因为这会导致信息丢失。我得到错误“float”对象没有属性“Radiation” 这个问题的解决方案是什么,因为我确实希望保持浮点数据类型并执行if-elese循环

radiation column values

============

查找日期的功能

def wplyer(row):
        if  row.Radiation == 0: 
            return 'Yes' ##### Night value
        else:
            return'No'
    tp= df2_all_rows['Radiation'].apply(wplyer)
    df2_all_rows['Day status'] = tp

Tags: 函数信息returnifallrowsintrow
1条回答
网友
1楼 · 发布于 2024-05-28 19:47:03

将函数按行应用于列,因此每个输入都是该列的一个值,即浮点值

但是,您的函数希望它按行应用于数据帧,这样,row就是一个命名元组,您可以使用row.Radiation访问它。这就是为什么会出现错误-您试图访问浮点上名为“辐射”的属性,当然,浮点没有这样的属性

无论如何,您不需要使用apply来完成您的目标

df2_all_rows['Day status'] = 'No'
df2_all_rows.loc[df2_all_rows['Radiation'] == 0, 'Day status'] = 'Yes'

相关问题 更多 >

    热门问题