2024-05-21 14:54:56 发布
网友
如何将条件逻辑应用于Pandas数据帧。
见下面的数据框
data desired_output 0 1 False 1 2 False 2 3 True 3 4 True
我的原始数据显示在“数据”列中,所需的输出显示在它旁边。如果“data”中的数字低于2.5,则所需的_输出为False。
我可以应用循环并重新构造数据帧。。。但那将是“非Python”
在这个特定的例子中,数据框只有一列,您可以将其优雅地写成:
df['desired_output'] = df.le(2.5)
le测试元素是否小于或等于2.5,同样地,对于小于、gt和ge测试元素是否小于或等于2.5。
le
gt
ge
In [1]: df Out[1]: data 0 1 1 2 2 3 3 4
您希望应用一个函数,该函数根据选定的数据帧列有条件地返回一个值。
In [2]: df['data'].apply(lambda x: 'true' if x <= 2.5 else 'false') Out[2]: 0 true 1 true 2 false 3 false Name: data
然后,可以将返回的列分配给数据帧中的新列:
In [3]: df['desired_output'] = df['data'].apply(lambda x: 'true' if x <= 2.5 else 'false') In [4]: df Out[4]: data desired_output 0 1 true 1 2 true 2 3 false 3 4 false
只需将列与该值进行比较:
In [9]: df = pandas.DataFrame([1,2,3,4], columns=["data"]) In [10]: df Out[10]: data 0 1 1 2 2 3 3 4 In [11]: df["desired"] = df["data"] > 2.5 In [11]: df Out[12]: data desired 0 1 False 1 2 False 2 3 True 3 4 True
在这个特定的例子中,数据框只有一列,您可以将其优雅地写成:
le
测试元素是否小于或等于2.5,同样地,对于小于、gt
和ge
测试元素是否小于或等于2.5。您希望应用一个函数,该函数根据选定的数据帧列有条件地返回一个值。
然后,可以将返回的列分配给数据帧中的新列:
只需将列与该值进行比较:
相关问题 更多 >
编程相关推荐