Я видел множество примеров переполнения стека о том, как изменить один столбец в кадре данных на основе условия, но я не могу понять, как изменить несколько столбцов на основе одного условия.
Если у меня есть кадр данных, сгенерированный на основе приведенного ниже кода -
import random
import pandas as pd
random_events = ('SHOT', 'MISSED_SHOT', 'GOAL')
events = list()
for i in range(6):
event = dict()
event['event_type'] = random.choice(random_events)
event['coords_x'] = round(random.uniform(-100, 100), 2)
event['coords_y'] = round(random.uniform(-42.5, 42.5), 2)
events.append(event)
df = pd.DataFrame(events)
print(df)
coords_x coords_y event_type
0 4.07 -21.75 GOAL
1 -2.46 -20.99 SHOT
2 99.45 -15.09 MISSED_SHOT
3 78.17 -10.17 GOAL
4 -87.24 34.40 GOAL
5 -96.10 30.41 GOAL
Что я хочу сделать, это следующее (в псевдокоде) в каждой строке DataFrame -
if df['coords_x'] < 0:
df['coords_x'] * -1
df['coords_y'] * -1
Есть ли способ сделать это с помощью функции df.apply()
, которую мне не хватает?
Заранее благодарю за помощь!