Эффективно вычитать каждый отдельный столбец данных? - PullRequest
0 голосов
/ 27 февраля 2019

Например, у меня есть фрейм данных, изображенный ниже, и я хотел бы создать новый фрейм данных, в котором столбцы будут вычитаться из предыдущих.

Заданный фрейм данных: (может иметь любое количество столбцов)

  A    B    C
0  10  100  200
1  15  115  215
2  20  120  220
3  25  125  225
4  30  130  230


Dataframe required
   A-B  A-C  B-A  B-C  C-A  C-B
0  ..
1  ..
2  ..
3  ..
4  

Спасибо.

1 Ответ

0 голосов
/ 28 февраля 2019

Редактировать: Использование itertools.permutations вместо itertools.combination, как указано в комментарии Остина Вагнера, чтобы определить все возможные комбинации в одной команде.

Вам необходимо определитьвсех возможных комбинаций и вычислите результат вычитания для каждой из них.

df = pd.DataFrame({
    'A': [10, 15, 20, 25, 30],
    'B': [100, 115, 120, 125, 130],
    'C': [200, 215, 220, 225, 230]
})

def subtractions_of_combinations(df):
    # Extract all the combinations
    combinations = list(itertools.permutations(df.columns, 2)) 
    # Calculate the two possible subtractions for each combination
    new_df = pd.DataFrame()
    for a, b in combinations:
        new_df[f'{a}-{b}'] = df[a] - df[b]
    return new_df
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...