Применение пользовательской функции к фрейму данных - PullRequest
0 голосов
/ 21 февраля 2020

Я некоторое время боролся за проблему. На самом деле я хочу создать новый столбец в моем фрейме данных, который даст 0 для значений 3 столбцов ниже определенного диапазона и 1 для значений, превышающих пороговое значение. Я прилагаю изображение моей головы данных. По моим данным, если значение Ir, Iy и Ib превышает 4, то 1 еще 0. Заранее спасибо!

Ответы [ 2 ]

0 голосов
/ 21 февраля 2020

вот пример для этого: если lr> 0,5 и ly> 0,4 ​​и фунт> 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

0 голосов
/ 21 февраля 2020

Попробуйте это:

import numpy as np

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