панды, делящиеся по условию

#pandas #division

#панды #деление

Вопрос:

У меня есть pandas dataframe df с нижеприведенным содержимым:

 df = pd.DataFrame({'x': ['a', 'b', 'c'], 'y': [15, 10, 5]})
 

введите описание изображения здесь

Я хотел бы получить третий столбец, который показывает результат деления на значение в y, когда x = c

введите описание изображения здесь

Я пробовал некоторые, но не работал:

 df['z'] = df['y']/df.loc[df['x']== 'c', 'y']
 

Комментарии:

1. Похоже, это должно работать с образцами данных. Что не так с вашей стороны?

2. вероятно, сделать часть loc массивом : df.y / df.loc[df.x == "c", "y"].array

3. У вас есть несколько значений «c»? Вы можете использовать iloc[0] , чтобы выбрать первый из них : df['y'] / df.loc[df['x'] == 'c', "y"].iloc[0] .

4. Это сработало! Спасибо Сэмми и Дэвиду.