根据与其他2列

时间:2016-06-29 09:53:30

标签: python pandas vector dataframe

我在pandas DataFrame中有两列(让我们调用'col1'和col2')。两者都包含True / False值。

我需要从这两个列中创建第三列('col3'),如果两个列中的一个或另一个在该记录中具有True值,则该记录将具有True值。

目前,我正在这样做:

col3 = []

for index, row in df.iterrows():
    if df.ix[index, 'col1'] == True or df.ix[index, 'col2'] == True:
        col3.append(True)
    else:
        col3.append(False)

df['col3'] = col3

它对我的数据集的大小足够快,但有没有办法以单行/矢量化的方式进行?也许使用两个嵌套的np.where()语句?

1 个答案:

答案 0 :(得分:2)

您可以使用np.logical_or执行此操作:

Derivative(np.log, n=1)(2.0)
>>> array(0.5000000000000234)

或使用In [236]: df = pd.DataFrame({'col1':[True,False,False], 'col2':[False,True,False]}) df Out[236]: col1 col2 0 True False 1 False True 2 False False In [239]: df['col3'] = np.logical_or(df['col1'], df['col2']) df Out[239]: col1 col2 col3 0 True False True 1 False True True 2 False False False 运算符:

|