Есть ли способ ввести имена столбцов подсказок Pandas?Python

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Есть ли способ ввести имена столбцов подсказок Pandas?

Сообщение Anonymous »

на этапе постобработки данных я создаю DataFrame df_energy в pandas, столбцы которого создаются в соответствии с входными данными (различающимися при каждом запуске). В качестве имен столбцов я использую экземпляры класса данных ColumnName, который содержит информацию о источнике данных.

Код: Выделить всё

import pandas as pd
from dataclasses import dataclass

@dataclass
class ColumnName:
bus_name: str
component_name: str
component_type: str

def __hash__(self):
return hash((self.bus_name, self.component_name, self.component_type))

# Here an example dataframe. In the actual code the dataframe column names change each run
df_energy = pd.DataFrame({
ColumnName('bus1', 'comp1', 'type1'): [1, 2, 3],
ColumnName('bus1', 'comp2', 'type2'): [4, 5, 6],
ColumnName('bus2', 'comp3', 'type3'): [7, 8, 9],
ColumnName('bus2', 'comp4', 'type4'): [10, 11, 12],
})

cols_bus1 = [col for col in df_energy.columns if col.bus_name == 'bus1']

print(df_energy[cols_bus1])

Теперь я перебираю имена столбцов и получаю доступ к атрибутам класса данных.

Код: Выделить всё

cols_bus1 = [col for col in df_energy.columns if col.bus_name == 'bus1']
Это отлично работает при запуске кода, но mypy жалуется, поскольку ожидает, что имена столбцов будут строками; mypy -> ошибка: «str» не имеет атрибута «bus_name» [attr-defined]
Есть ли способ сообщить mypy, что каждое имя столбца на самом деле является экземпляром этого класса данных?
Я прочитал в pandera, но поскольку имена столбцов не фиксированы и будут меняться каждый раз при запуске кода, мне не удалось заставить pandera работать. Я думаю, что я мог бы также запустить код, используя MultiIndex для столбцов, но он кажется более читабельным, если обращаться к информации о столбце как к свойствам класса данных.
Если у вас есть идеи, дайте мне знать. Любая помощь или вклад приветствуются.

Подробнее здесь: https://stackoverflow.com/questions/792 ... lumn-names
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • Есть ли способ ввести имена столбцов подсказок Pandas?
    Anonymous » » в форуме Python
    0 Ответы
    9 Просмотры
    Последнее сообщение Anonymous
  • Есть ли способ ввести имена столбцов подсказок Pandas?
    Anonymous » » в форуме Python
    0 Ответы
    5 Просмотры
    Последнее сообщение Anonymous
  • Есть ли способ ввести имена столбцов подсказок Pandas?
    Anonymous » » в форуме Python
    0 Ответы
    11 Просмотры
    Последнее сообщение Anonymous
  • Есть ли способ ввести имена столбцов подсказок Pandas?
    Anonymous » » в форуме Python
    0 Ответы
    5 Просмотры
    Последнее сообщение Anonymous
  • Как преобразовать имена столбцов DataFrame Pandas Pandas в один уровень?
    Anonymous » » в форуме Python
    0 Ответы
    31 Просмотры
    Последнее сообщение Anonymous

Вернуться в «Python»