Pandas数据框架的条件逻辑

2024-04-16 09:33:31 发布

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

如何将条件逻辑应用于Pandas数据帧。

见下面的数据框

   data desired_output
0     1          False
1     2          False
2     3           True
3     4           True

我的原始数据显示在“数据”列中,所需的输出显示在它旁边。如果“data”中的数字低于2.5,则所需的_输出为False。

我可以应用循环并重新构造数据帧。。。但那将是“非Python”


Tags: 数据falsetruepandasoutputdata原始数据数字
3条回答

在这个特定的例子中,数据框只有一列,您可以将其优雅地写成:

df['desired_output'] = df.le(2.5)

le测试元素是否小于或等于2.5,同样地,对于小于、gtge测试元素是否小于或等于2.5。

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

相关问题 更多 >