#python-3.x #group-by #pandas-groupby
Вопрос:
У меня есть простой набор данных, приведенный ниже:
import numpy as np import pandas as pd arr = np.array([1, 2, 4, 7, 11, 16, 22, 29, 37, 46]) df = pd.DataFrame({'group': ['A', 'B', 'A', 'B', 'A', 'B', 'A', 'B', 'A', 'B']}) df["target"] = arr
Я могу обновить group A
данные ниже:
df_groupby_ob = df.groupby('group') df_grain = df_groupby_ob.get_group('A') df_grain["target"] = df_grain["target"] * -1
Однако я не смог обновить исходный df
кадр данных . Можно ли обновить исходный кадр данных, df
, после фильтрации с показанными строками:
df_groupby_ob = df.groupby('group') df_grain = df_groupby_ob.get_group('A')
Комментарии:
1. Если я вас правильно понимаю, я бы сказал, что вам даже не нужно группироваться. Просто обновите на основе значения столбца группы. df[«цель»].где(~df[«группа»].eq(«A»), df[«цель»]*-1) . Это сохраняет все значения, где gropu не равно A, и обновляется с *-1, где оно равно A.