Найти, если сумма любых двух столбцов превышает X в кадре данных панд - PullRequest
0 голосов
/ 16 ноября 2018

Sample.Столбцы - это атрибуты, строки - это наблюдение.

Я хотел бы извлечь строки, в которых сумма любых двух атрибутов превышает указанное значение (скажем, 0,7).Затем, в двух новых столбцах, заголовок столбца списка с большим и меньшим вкладом в сумму.

Я новичок в python, поэтому я застрял, продолжая работу после генерации моего фрейма данных.

1 Ответ

0 голосов
/ 16 ноября 2018

Вы можете сделать это:

import pandas as pd
from itertools import combinations

THRESHOLD = 8.0

def valuation_formula(row):
    l = [sorted(x) for x in combinations(row, r=2) if sum(x) > THRESHOLD]
    if(len(l) == 0):
        row["smaller"], row["larger"] = None, None
    else:
        row["smaller"], row["larger"] = l[0]  # since not specified by OP, we take the first such pair
    return row  

contribution_df = df.apply(lambda row: valuation_formula(row), axis=1)

Так что, если

df = pd.DataFrame({"a" : [1.0, 2.0, 4.0], "b" : [5.0, 6.0, 7.0]})
     a    b
0  1.0  5.0
1  2.0  6.0
2  4.0  7.0

тогда contribution_df равно

     a    b  smaller  larger
0  1.0  5.0      NaN     NaN
1  2.0  6.0      NaN     NaN
2  4.0  7.0      4.0     7.0

НТН.

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