В настоящее время у меня есть файл 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 для очистки данных. В зависимости от ваших данных это может быть достигнуто по-разному. Вы можете использовать встроенные функции 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']