Составление листа Excel с использованием Python и Matplotlib?

1

В настоящее время у меня есть файл excel, который находится в этом формате:

PS               PSX1         PSX2         PSX3        PSX4
              I   P   V    I   P   V    I   P   V    I   P   V
States
Idle          #   #   #    #   #   #    #   #   #    #   #   #
Data=Addr(R)  #   #   #    #   #   #    #   #   #    #   #   #
Data=Addr(W)  #   #   #    #   #   #    #   #   #    #   #   # 
.             .   .   .    .   .   .    .   .   .    .   .   .
.             .   .   .    .   .   .    .   .   .    .   .   . 

Когда я пытаюсь импортировать его как кадр данных pandas, он добавляет имена столбцов, чтобы дать каждому имя вместо четырех PSX1, PSX2, PSX3 и PSX4. Он также добавляет NaN в пустые пространства. Это становится проблемой, когда я пытаюсь ее нарисовать, я получаю сообщение об ошибке "Пустое" DataFrame ": нет числовых данных для построения". Есть ли способ пропустить импорт в качестве кадра данных pandas и просто построить его прямо после прочтения его в качестве файла excel?

Я хочу, чтобы график составлял 4 строки (по одному для каждого источника питания), и я забочусь только о столбце P, а ось x - это разные состояния. Я новичок в matplotlib и python в целом. Любая помощь приветствуется.

Теги:
pandas
matplotlib

1 ответ

1
Лучший ответ

Используйте pandas для очистки данных. В зависимости от ваших данных это может быть достигнуто по-разному. Вы можете использовать встроенные функции pandas:

your_dataframe_here.dropna(inplace=True) 

Это приведет к удалению всех значений NaN, однако это не оптимальный подход. Вы должны скорее заменить значения NaN соответствующим значением, либо выбросом, либо средним значением ближайших значений.

your_dataframe_here.fillna(value=-99999, inplace=True)

Однако это приведет к выбросам, если имеется большое количество значений NaN, которые вы должны заменить со средним значением для достижения наилучших результатов.

your_dataframe_here.fillna(value=df['target_here'].mean())

или для нецелевых:

your_dataframe_here.fillna(value=df.mean())

После очистки данных вы должны отделить свои функции и соответствующим образом спланировать их. Кроме того, имена столбцов были добавлены, потому что их требует библиотека panda. Вы можете изменить их так, как вы считаете нужным:

your_dataframe_here.columns = ['your_column_name', 'your_column_name']

Убедитесь, что размер вашего списка соответствует количеству столбцов в вашем фрейме данных. Наконец, для строгого доступа к столбцу "P" вы можете подмножить свой фрейм данных, например:

your_P_set = your_data_frame['P']

Ещё вопросы

Сообщество Overcoder
Наверх
Меню