#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. Это сработало! Спасибо Сэмми и Дэвиду.