将自定义函数应用于数据框

时间:2020-02-21 12:23:42

标签: python pandas lambda data-science apply

我一直在努力解决一个问题。实际上,我想在我的数据框中创建一个新列,如果3列的值在一定范围内,则将给0,对于超过阈值的值将给1。我要附加数据头的图像。在我的数据中,如果Ir,Iy和Ib的值大于4,则为1,否则为0。 预先感谢!

2 个答案:

答案 0 :(得分:0)

尝试一下:

import numpy as np

df['new_col'] = np.where(((df['lr'] > 4) & (df['ly'] > 4) & (df['lb'] > 4)), 1, 0)

答案 1 :(得分:0)

此处是执行此操作的示例: 如果lr> 0.5且ly> 0.4且lb> 0.3

import random
import pandas as pd
data = {'lr': [],
        'ly': [],
        'lb': []
       }

for i in range(20):
    r = random.random()
    y = random.random()
    b = random.random()
    data['lr'].append(r)
    data['ly'].append(y)
    data['lb'].append(b)

data

df = pd.DataFrame(data)
df['new_column'] = 0

filt = (df['lr'] > 0.5) & (df['ly'] > 0.4) & (df['lb'] > 0.3)

df.loc[filt, 'new_column'] = 1
df

enter image description here