Python 如何检查DataFrame.Series元素的条件并将结果应用于新列?
我有一个熊猫数据框Python 如何检查DataFrame.Series元素的条件并将结果应用于新列?,python,pandas,Python,Pandas,我有一个熊猫数据框 df = pandas.DataFrame([(11,12,13),(1,3,5),(1,1,2)], columns=['a','b','c']) a b c 0 11 12 13 1 1 3 5 2 3 1 2 我想创建第四列,名为d,它将告诉我一行中的每个元素是否大于10。这个例子是这样的 a b c d 0 11 12 13 True 1 1 3 5 False 2
df = pandas.DataFrame([(11,12,13),(1,3,5),(1,1,2)], columns=['a','b','c'])
a b c
0 11 12 13
1 1 3 5
2 3 1 2
我想创建第四列,名为d
,它将告诉我一行中的每个元素是否大于10。这个例子是这样的
a b c d
0 11 12 13 True
1 1 3 5 False
2 3 1 2 False
我试过了,这给了我一个打字错误
x = df['a']
y = df['b']
z = df['c']
df['d'] = df.apply(lambda x,y,z: True if x > 10 and y > 10 and z > 10 else False)
我也试过,这给了我一个错误
df['d'] = True
df['e'] = df['d'].where(df['a'] > 10 and df['b'] > 10 and df['c'] > 10, other=False)
我们可以在表达式
df>10
上使用np.all
:
In [423]:
df['d'] = np.all(df > 10, axis=1)
df
Out[423]:
a b c d
0 11 12 13 True
1 1 3 5 False
2 1 1 2 False
In [421]:
df > 10
Out[421]:
a b c
0 True True True
1 False False False
2 False False False
In [422]:
np.all(df > 10, axis=1)
Out[422]:
array([ True, False, False], dtype=bool)
我想检查每列中的每个元素是否大于10,而不是所有元素的总和是否大于10。