График зависимости разницы в одном столбце для сгруппированных столбцов панд данных - PullRequest
2 голосов
/ 08 июля 2019

У меня есть датафрейм, ниже приведен упрощенный пример:

   cycle  sensor  value
0      0       1   0.34
1      0       1   0.80
2      0       2   0.12
3      0       2   0.62
4      1       1   0.01
5      1       1   0.75
6      1       2   0.06
7      1       2   0.02

Я хотел бы построить разность столбца «значение» для каждого датчика для каждого цикла: иметь ось X в качестве номера цикла, ось Y в качестве разницы в значении, для каждой серии будет заданный номер датчика , например линия для датчика 1 будет 0,46 и 0,74 в циклах 0 и 1.

На самом деле у меня есть еще много столбцов (не используемых для этой части моего кода), и есть 144 цикла и 37 циклов. На каждый датчик приходится несколько тысяч значений.

Это код, который я написал, я не получаю сообщение об ошибке: фигура создана, но данные не отображаются.

groups = unstacked_data.groupby(["cycle", "pressure"])

fig,ax = plt.subplots()
ax.set_xlabel("Cycle Number")
ax.set_ylabel("Change in Normalised Pressure")


for cycle, group in groups:
        ax.plot(cycle[0],group.value.max()-group.value.min(), label=group.pressure)

Я не уверен, что я делаю неправильно, любой совет был бы оценен! :)

1 Ответ

1 голос
/ 08 июля 2019

Хорошо, думаю, теперь я понял. Должен ли результат выглядеть так?

diff = df.groupby(["sensor","cycle"]).apply(lambda x:x.value.max()-x.value.min()).unstack()

#Output: each value in the table is max-min. Columns are cycles and rows are sensors
    cycle   0         1
sensor      
1          0.46     0.74
2          0.50     0.04

И теперь вы можете построить его по строке, то есть по сенсору.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...