pandas 关于Python中IF ELSE和数学的问题

q43xntqr  于 2022-11-05  发布在  Python
关注(0)|答案(1)|浏览(151)

数据时间:PM2.5,2014年1月1日,9,2014年2月1日,10
第一个
大家好,
我想转换空气质量数据到PM2.5与上述条件和方程使用上述编码。
我收到错误消息“ValueError:序列的真值不明确。请使用.empty、.bool()、.item()、.any()或.all()。"。
我希望有人能告诉我出了什么问题。
先谢谢你。
我写了上面的代码,但显示错误。希望有人能告诉我的代码有什么问题。

jdgnovmf

jdgnovmf1#

例如,您可以为单值重写函数,并使用df.apply(...)

import pandas as pd
data  = pd.DataFrame({'PM2.5': [15, 50, 1000]})

def calculation(y):
    if 0<y<12:
        return (50/12)*y
    elif 12.1 <= y  <= 50.4:
        return (((100-51)/(50.4-12.1))*(y-12.1))+51
    ## .... 
    else:
        return (((500-401)/(500.4-350.5))*(y-350.5))+401

y=data['PM2.5']
print(y.apply(calculation))

这与您的代码非常接近,但通过矢量化可能存在更快的解决方案。

相关问题