Как создать столбец DataFrame для панд, основываясь на существовании значений - PullRequest
0 голосов
/ 11 октября 2018

У меня есть пандас DataFrame следующим образом:

import pandas as pd
aw = pd.DataFrame(data=[[1,2,3],[4,5,6],[7,8,9]],
columns=['A','B','C'])

print(aw)
>>>
   A  B  C
0  1  2  3
1  4  5  6
2  7  8  9

Я хочу создать столбец D на основе значений столбца C

Если значение находится в верхних 20%, установите значениеDas 0,04

Если значение находится в верхних 40% и меньше верхних 20%, установите значение D равным 0,03

Если значение находится в верхних 60% и меньше верхних 20%, установите значениес D как 0,02

Как мне этого добиться?

1 Ответ

0 голосов
/ 11 октября 2018

Дайте этому попытку

def percentile(x):
if x>df.C.quantile(0.8):
    return 0.04
elif x>df.C.quantile(0.6) and x<= df.C.quantile(0.8):
    return 0.03
elif x>df.C.quantile(0.4) and x<= df.C.quantile(0.6):
    return 0.02
else:
    return None

df['D'] = df['C'].apply(percentile)

Как предложено Mayank Porwal, вы можете заменить df.C.quantile(0.8) на numpy.percentile(df.C, 80)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...