Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/python-2.7/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 你怎么办,还有~~你在熊猫身上做什么_Python_Python 2.7_Pandas - Fatal编程技术网

Python 你怎么办,还有~~你在熊猫身上做什么

Python 你怎么办,还有~~你在熊猫身上做什么,python,python-2.7,pandas,Python,Python 2.7,Pandas,我经常在工作中看到这样的代码: overlap &= group['ADMSN_DT'].loc[i] <= group['epi_end'].loc[j] overlap&=group['ADMSN_DT'].loc[i] 运算符为:| for or、&for and和~ for not。这些一定是 使用括号分组 增强分配评估目标(与正常分配不同 赋值语句,不能是解包语句)和表达式 列表中,执行特定于赋值类型的二进制操作 并将结果赋给原始目标。 目标仅评估一次 就像a+=1递

我经常在工作中看到这样的代码:

overlap &= group['ADMSN_DT'].loc[i] <= group['epi_end'].loc[j]
overlap&=group['ADMSN_DT'].loc[i]

运算符为:| for or、&for and和~ for not。这些一定是 使用括号分组

增强分配评估目标(与正常分配不同 赋值语句,不能是解包语句)和表达式 列表中,执行特定于赋值类型的二进制操作 并将结果赋给原始目标。 目标仅评估一次

就像
a+=1
递增
a
a&=b
比较
a
b
,并将结果分配给
a

a = 1
b = 0
print(a & b)
>>> 0
a &= b
print(a)
>>> 0
还有一个
pandas
示例

让我们生成一个由0和1组成的数据帧

import numpy as np
import pandas as pd
a = pd.DataFrame(np.random.randint(0, 2, size=(6,4)), columns=list('ABCD'))
b = pd.DataFrame(np.random.randint(0, 2, size=(6,4)), columns=list('ABCD'))
我们的初始数据帧

print(a)
第四行
a
b

print(a.loc[3])
print(a.loc[3])
现在计算并分配第4行

a.loc[3] &= b.loc[3]
a
的第4行已更改。只有当两行的1位于同一位置时,1才会写回
a

a = 1
b = 0
print(a & b)
>>> 0
a &= b
print(a)
>>> 0

在大多数基于c-ish的语言中,它们都是捷径
foo X=…
只是
foo=foo X…。
因为“”,您可能会想知道。这些是在系列/数据帧上工作的元素逻辑运算符。对于赋值(
ser1&=ser2
),它们照常工作,正如Marc B所说:
ser1=ser1&ser2
。那么|=表示相交,&=表示并集?它们与并集或相交无关
pd.Series([True,False,True])&pd.Series([False,True,True])
返回
pd.Series([False,False,True])
因此运算符是按元素应用的。对于&和|如果后面有一个=符号,如示例中所示,这意味着什么?@bigdata它执行该操作,然后将结果分配给左边的名称。因此,对于以下代码导入numpy,np a=pd.DataFrame(np.random.randn(6,4),columns=list('ABCD')b=pd.DataFrame(np.random.randn(6,4),columns=list('ABCD'))a&=bso对于以下代码导入numpy作为np a=pd.DataFrame(np.random.randn(6,4),columns=list('ABCD'))b=pd.DataFrame(np.random.randn(6,4),columns=list('ABCD'))a&=b返回类型错误error:ufunc“按位”和“不支持输入类型”,并且根据强制转换规则“安全”@bigdata,无法将输入安全强制为任何支持的类型。如果您需要可比较的数据类型,请参阅更新的示例。
A    1
B    1
C    0
D    0
Name: 1, dtype: int32
print(b.loc[3])
A    0
B    1
C    1
D    1
Name: 1, dtype: int32
a.loc[3] &= b.loc[3]
print(a.loc[3])
A    0
B    1
C    0
D    0
Name: 3, dtype: int32