Как строить с помощью панд

У меня есть такой набор данных

Набор данных

И я хочу построить график потока / даты для каждой цели в каждой полосе пропускания. Что-то вроде этого

Я пробовал использовать pandas, но понятия не имею, как это сделать. Я пробовал plot.bar и plot.hist

Приветствую и заранее спасибо

Обновлено: я использую измененную юлианскую дату вместо календарной даты

Почему в Python есть оператор "pass"?
Почему в Python есть оператор "pass"?
Оператор pass в Python - это простая концепция, которую могут быстро освоить даже новички без опыта программирования.
Некоторые методы, о которых вы не знали, что они существуют в Python
Некоторые методы, о которых вы не знали, что они существуют в Python
Python - самый известный и самый простой в изучении язык в наши дни. Имея широкий спектр применения в области машинного обучения, Data Science,...
Основы Python Часть I
Основы Python Часть I
Вы когда-нибудь задумывались, почему в программах на Python вы видите приведенный ниже код?
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
Алиса и Боб имеют неориентированный граф из n узлов и трех типов ребер:
Оптимизация кода с помощью тернарного оператора Python
Оптимизация кода с помощью тернарного оператора Python
И последнее, что мы хотели бы показать вам, прежде чем двигаться дальше, это
Советы по эффективной веб-разработке с помощью Python
Советы по эффективной веб-разработке с помощью Python
Как веб-разработчик, Python может стать мощным инструментом для создания эффективных и масштабируемых веб-приложений.
1
0
46
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Используйте pivot_table с DataFrame.plot, при необходимости измените агрегатную функцию на sum, mean ...:

df = pd.DataFrame({'date':['2022-01-01','2022-01-10','2023-01-01', '2023-02-10'],
                   'passband':[1,1,2,2],
                   'flux':[2,8,5,6]})
print (df)
         date  passband  flux
0  2022-01-01         1     2
1  2022-01-10         1     8
2  2023-01-01         2     5
3  2023-02-10         2     6

df['date'] = pd.to_datetime(df['date'])

df['year'] = df['date'].dt.year
df1 = df.pivot_table(index='year',
                     columns='passband',
                     values='flux',
                     aggfunc='sum',
                     fill_value=0)
print (df1)
passband   1   2
year            
2022      10   0
2023       0  11

df1.plot()

Это дает мне следующую ошибку: «ValueError: индекс содержит повторяющиеся записи, не может изменить форму»

A. Esquivias 29.10.2018 09:50

@ A.Esquivias - Извините, ответ был изменен на pivot_table

jezrael 29.10.2018 09:56

Следует ли использовать весь фрейм данных как dataTypeError: pivot_table() missing 1 required positional argument: 'data'

A. Esquivias 29.10.2018 10:21

@ A.Esquivias - Вы правы, добавили решение с новым вспомогательным столбцом и примерами данных.

jezrael 29.10.2018 10:27

Получилось (без ошибок), но не построил, просто создал таблицу вместо графика

A. Esquivias 29.10.2018 10:33

@ A.Esquivias - супер, последнее добавление df1.plot()

jezrael 29.10.2018 10:34

Другие вопросы по теме