Я пытаюсь создать скрипку в seaborn. Вход представляет собой pandas DataFrame, и похоже, что для разделения данных вдоль оси x мне нужно различать один столбец. Я в настоящее время DataFrame что значения с плавающей точкой для нескольких датчиков:Уменьшить количество столбцов в pandas DataFrame
>>>df.columns
Index('SensorA', 'SensorB', 'SensorC', 'SensorD', 'group_id')
То есть, каждый столбец Sensor[A-Z]
содержит кучу цифр:
>>>df['SensorA'].head()
0 0.072706
1 0.072698
2 0.072701
3 0.072303
4 0.071951
Name: SensorA, dtype: float64
И для этой проблемы, я заинтересован только в 2-х группах:
>>>df['group_id'].unique()
'1', '2'
Я хочу, чтобы каждый Sensor
быть отдельной скрипкой вдоль оси х.
Я думаю, что это означает, что мне нужно, чтобы преобразовать это в чем-то вида:
>>>df.columns
Index('Value', 'Sensor', 'group_id')
где Sensor
столбец в новом DataFrame содержит текст «SensorA», «SensorB» и т.д., Value
столбец в новом DataFrame содержит значения, которые были оригинальными в каждом столбце Sensor[A-Z]
, и информация группы сохраняется.
я мог бы создать violinplot с помощью следующей команды:
ax = sns.violinplot(x="Sensor", y="Value", hue="group_id", data=df)
Я думаю, что я вроде нужно сделать обратный стержень. Есть ли простой способ сделать это?
не могли бы вы предоставить некоторые данные из вашего фрейма данных? –
Я просто добавил несколько примеров данных – mgig