В Python pandas
мне нужно сделать сетку фасетов из многомерного DataFrame
.
В столбцах a
и b
я держу скалярные значения, которые представляют условия эксперимента.
В столбцах x
и y
вместо этого у меня есть два массива. Столбец x
- это ось X данных, а столбец y
- это значение функции, соответствующее f(x)
.
Очевидно, что x
и y
имеют одинаковое количество элементов.
Теперь я хотел бы создать фазовую сетку со строками и столбцами, задающими условия, и в каждой ячейке сетки выведите значение столбца D против столбца D.
Это может быть минимальный рабочий пример:
import pandas as pd
d = [0]*4 # initialize a list with 4 elements
d[0] = {'x':[1,2,3],'y':[4,5,6],'a':1,'b':2} # then fill these elements
d[1] = {'x':[3,1,5],'y':[6,5,1],'a':0,'b':3}
d[2] = {'x':[3,1,5],'y':[6,5,1],'a':1,'b':3}
d[3] = {'x':[3,1,5],'y':[6,5,1],'a':0,'b':2}
pd.DataFrame(d) # create the pandas dataframe
Как я могу использовать уже существующие функции огранки для решения проблемы построения y vs x
, сгруппированных по условиям a
и b
?
Поскольку мне нужно применить эту функцию к общим наборам данных с разными именами столбцов, я бы хотел не прибегать к жестко-закодированным решениям, а скорее посмотреть, возможно ли расширить функцию seaborn FacetGrid
для решения этой проблемы.