Переименование столбцов при запросах с помощью SQLAlchemy в Pandas DataFrame

Есть ли способ сохранить имена атрибутов SqlAlchemy, когда вы запрашиваете данные в кадре данных pandas?

Вот простое отображение моей базы данных. Для школьного стола я переименовал «SchoolDistrict», название DB, в более короткий «район». Я удалил несколько слоев из DBA, поэтому изменить их в источнике не представляется возможным.

class School(Base):
    __tablename__ = 'DimSchool'

    id = Column('SchoolKey', Integer, primary_key=True)
    name = Column('SchoolName', String)
    district = Column('SchoolDistrict', String)


class StudentScore(Base):
    __tablename__ = 'FactStudentScore'

    SchoolKey = Column('SchoolKey', Integer, ForeignKey('DimSchool.SchoolKey'), primary_key = True)
    PointsPossible = Column('PointsPossible', Integer)
    PointsReceived = Column('PointsReceived', Integer)

    school = relationship("School", backref='studentscore')

Поэтому, когда я запрашиваю что-то вроде:

query = session.query(StudentScore, School).join(School)
df = pd.read_sql(query.statement, query.session.bind)

Я получаю базовое имя «SchoolDistrict» для столбца, а не имя моего атрибута, в возвращаемом DataFrame df.

РЕДАКТИРОВАТЬ: еще более раздражающим является случай, когда в таблицах существуют повторяющиеся имена столбцов. Например:

class Teacher(Base):
    __tablename__ = 'DimTeacher'

    id = Column('TeacherKey', Integer, primary_key=True)
    fname = Column('FirstName', String)
    lname = Column('FirstName', String)

class Student(Base):
    __tablename__ = 'DimStudent'

    id = Column('StudentKey', Integer, primary_key=True)
    fname = Column('FirstName', String)
    lname = Column('FirstName', String)

Таким образом, запрос к обоим таблицам (как показано ниже) создает кадр данных с дублирующимися столбцами FirstName и LastName.

query = session.query(StudentScore, Student, Teacher).join(Student).join(Teacher)

Можно ли будет переименовать эти столбцы в момент запроса? Сейчас у меня проблемы с тем, чтобы держать голову прямо с этими двумя системами имен столбцов.

Ответы на вопрос(1)

Ваш ответ на вопрос