Код: Выделить всё
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, что каждое имя столбца на самом деле является экземпляром этого класса данных?
Я прочитал в pandera, но поскольку имена столбцов не фиксированы и будут меняться каждый раз при запуске кода, мне не удалось заставить pandera работать. Я думаю, что я мог бы также запустить код, используя MultiIndex для столбцов, но он кажется более читабельным, если обращаться к информации о столбце как к свойствам класса данных.
Если у вас есть идеи, дайте мне знать. Любая помощь или вклад приветствуются.
Подробнее здесь: https://stackoverflow.com/questions/792 ... lumn-names