python按位定义数据_python – pandas数据框中的逻辑或/按位OR

本文介绍了Python中的按位运算符如何在Pandas数据帧中被重载,用于布尔逻辑操作。通过例子展示了如何使用&和|操作符在数据帧中进行条件筛选。解释了Pandas如何将这些运算符应用于系列对象,进行逐位比较并生成新的系列。同时讨论了使用按位运算符而非传统的and/or表达式的优点。
摘要由CSDN通过智能技术生成

至于我已经理解了这个问题(来自C背景,目前正在学习数据科学的Python),我偶然发现了一些帖子,表明按位运算符(&,|)可以在类中重载,就像C一样.

所以基本上,虽然你可以在数字上使用这样的按位运算符,但它们会比较这些位并给出结果.例如,如果您有以下内容:

1 | 2 # will result in 3

Python实际上要做的是比较这些数字的位:

00000001 | 00000010

结果将是:

00000011(因为0 | 0为False,ergo 0; 0 | 1为True,ergo 1)

整数:3

它比较数字的每一位并吐出这八个连续操作的结果.这是这些操作符的正常行为.

输入熊猫.由于你可以重载这些操作符,Pandas已经使用了这个.那么在进入pandas数据帧时,运算符的位运行方式如下:

(dataframe1[‘column’] == “expression”) & (dataframe1[‘column’] != “another expression)

在这种情况下,第一个pandas将根据==和!=操作的结果创建一系列的trues或falses(注意:你必须在外部表达式周围放置大括号,因为python总是会尝试解析第一个按位运算符和那么其他比较运算符!!).因此,它会将列中的每个值与表达式进行比较,并输出true或false.

然后你会有两个相同长度的真理和谬误系列.它的作用是采取这两个系列并基本上将它们与“和”(和)或“或”(|)进行比较,最后吐出一个系列,或者完成或不完成所有三个比较操作.

为了更进一步,我认为发生在幕后的是& -operator实际上调用了pandas的函数,给它们先前评估的操作(所以操作符左侧和右侧的两个系列)和熊猫然后一次比较两个不同的值,根据内部机制返回True或False以确定这一点.

这基本上与他们用于所有其他运算符的原理相同(>, =,< =,==,!=).

当你得到漂亮而整洁的“和”时,为什么要挣扎并使用不同的& -expression?好吧,这似乎是因为“和”只是硬编码而且无法手动更改.

希望有所帮助!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值