Есть ли способ создать диаграмму рассеяния при использовании seaborn, где значения (x, y) являются парными? Я бы хотел, чтобы ось X представляла значения в условии A, а ось Y представляла значения в условии B. Конкретно, предположим, что ось X - это вес пациента до лечения, а ось Y - вес пациента после лечения. Мои данные отформатированы следующим образом:
df = pd.DataFrame(
{'n': [1, 2, 3, 1, 2, 3],
'treatment': ['before', 'before', 'before', 'after', 'after', 'after'],
'weight': np.random.rand(6)})
n treatment weight
0 1 before 0.431438
1 2 before 0.053631
2 3 before 0.567058
3 1 after 0.324254
4 2 after 0.624151
5 3 after 0.519498
Я думаю, это квалифицируется как аккуратные данные, но единственная переменная, которую я хочу построить, - это вес. Вся документация, которую я вижу для seaborn, показывает примеры для парных данных, таких как построение переменной x каждого элемента и переменной y каждого элемента. Например, sepal_length против sepal_width. Но как я могу построить x по сравнению с y, если мои x и y взяты из одного и того же столбца?
Является ли решение переформатировать мои данные, чтобы у меня были столбцы weight_before и weight_after? Если да, можете ли вы предоставить самый чистый способ изменения данных, используя pandas? Я знаю, что могу сделать что-то вроде следующего, но я чувствую, что это не очень хороший синтаксис.
df['weight_before'] = df['weight']
df.loc[df['treatment'] != 'before', 'weight_before'] = np.nan
# and similar for df['weight_after']