Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/298.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 df.loc中的按位条件不';我不能给出预期的结果_Python_Pandas_Bit Manipulation_Loc - Fatal编程技术网

Python df.loc中的按位条件不';我不能给出预期的结果

Python df.loc中的按位条件不';我不能给出预期的结果,python,pandas,bit-manipulation,loc,Python,Pandas,Bit Manipulation,Loc,我编写了以下代码: df.loc[((df['col_A'] == False) & (df['loc_B'] == False)), 'col_C'] = "abc" 但是“abc”会写入coluc的所有值,而不是条件中指定的值。为什么呢 编辑: 我的列是对象/字符串,因此我尝试使用以下函数转换它们: def str_to_bool(s): if s == 'True': return True elif s == 'False':

我编写了以下代码:

df.loc[((df['col_A'] == False) & (df['loc_B'] == False)), 'col_C'] = "abc"
但是“abc”会写入coluc的所有值,而不是条件中指定的值。为什么呢

编辑:

我的列是对象/字符串,因此我尝试使用以下函数转换它们:

def str_to_bool(s):
    if s == 'True':
         return True
    elif s == 'False':
         return False
但它引发了以下错误:

"The truth value of a Series is ambiguous. Use a.empty, a.bool(), a.item(), a.any() or a.all()".

首先将序列转换为布尔值,例如通过
pd.DataFrame.apply

cols = ['col_A', 'col_B']
df[cols] = df[cols].apply(lambda x: x.eq('True'))
然后应用您的逻辑,注意
~
可用于否定序列:

df.loc[~df['col_A'] & ~df['col_B'], 'col_C'] = "abc"
或者根据德摩根定律:

df.loc[~(df['col_A'] | df['col_B']), 'col_C'] = "abc"

首先将序列转换为布尔值,例如通过
pd.DataFrame.apply

cols = ['col_A', 'col_B']
df[cols] = df[cols].apply(lambda x: x.eq('True'))
然后应用您的逻辑,注意
~
可用于否定序列:

df.loc[~df['col_A'] & ~df['col_B'], 'col_C'] = "abc"
或者根据德摩根定律:

df.loc[~(df['col_A'] | df['col_B']), 'col_C'] = "abc"

对于
df.dtypes
,您看到了什么?如果您有布尔级数,您应该更喜欢
~df['col\u A']
而不是
df['col\u A']==False
。如果不需要,则需要将序列转换为布尔值。它们是对象,请参见我的编辑。对于
df.dtypes
,您看到了什么?如果您有布尔级数,您应该更喜欢
~df['col\u A']
而不是
df['col\u A']==False
。如果不需要,则需要将序列转换为布尔值。它们是对象,请参见我的编辑