python - 对 pandas 数据框中的浮点数据类型应用 if else 循环
问题描述
我想将此函数应用于具有浮点值的列,并且我不想将值更改为 int 数据类型,因为它会导致信息丢失。我收到错误''float' object has no attribute 'Radiation'' 这个问题的解决方案是什么,因为我确实想保留浮点数据类型并执行 if elese 循环
=======
查找日期的功能
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
解决方案
您将函数逐行应用于一列,因此每个输入都是该列的一个值,它是一个浮点数。
但是,您的函数希望它按行应用于数据帧,这样行是一个命名元组,您可以使用 row.Radiation 访问它。这就是您收到错误的原因 - 您正在尝试访问浮动上名为“Radiation”的属性,当然,浮动没有这样的属性。
无论如何,你不需要使用apply
来完成你的目的。
df2_all_rows['Day status'] = 'No'
df2_all_rows.loc[df2_all_rows['Radiation'] == 0, 'Day status'] = 'Yes'
推荐阅读
- python - Selenium Python - 为什么是 StaleElementReferenceException 而不是 NoSuchElement 以及如何捕捉
- windows - Nginx 仅将服务器的特定路径从 http 重定向到 https
- c# - WebApi 中的微服务设计部分
- awk - 使用 awk 在 txt 文件中查找特殊字符
- python - 我想用python重命名文件夹中的所有文件
- maven - VDI机器中的maven依赖问题
- python - 使用python在随机数数组中查找相邻数字
- xml - IIS 反向代理出站规则
- python - 将列表传递给 cython 函数并返回一个列表
- python - 将文件内容转换为嵌套列表