Я пытаюсь вычислить новые значения в столбце, у которого есть перекрестные ссылки на другой столбец.
>>> import pandas as pd
>>> df = pd.DataFrame( {"A":[0., 100., 80., 40., 0., 60.],
"B":[12, 12, 3, 19, 3, 19]} )
>>> df
A B
0 0.0 12
1 100.0 12
2 80.0 3
3 40.0 19
4 0.0 3
5 60.0 19
Я хочу найти все значения в столбце A, которые равны 0, найти соответствующиезначение в столбце B, затем измените все значения столбца A, имеющие одинаковое значение столбца B, согласно некоторой функции.Например, в приведенном выше примере я хотел бы изменить первые два значения столбца A, df.A[0]
и df.A[1]
, соответственно, 0 и 100., на 0,5 и 99,5, поскольку df.A[0]
равно 0. И он имеетто же значение df.B[0] = 12
в столбце B, что и df.B[1] = 12
.
df
A B
0 0.5 12
1 99.5 12
2 79.5 3
3 40.0 19
4 0.5 3
5 60.0 19
Я пытался объединить функции loc, aggregate, groupby и mask, но у меня ничего не получается.Является ли единственный путь для цикла for?
РЕДАКТИРОВАТЬ: расширенный пример, чтобы лучше проиллюстрировать намерение.