Cambiar el nombre de las columnas al consultar con SQLAlchemy en Pandas DataFrame

¿Hay alguna manera de retener los nombres de atributo SqlAlchemy cuando consulta los datos en un marco de datos de pandas?

Aquí hay un mapeo simple de mi base de datos. Para la mesa de la escuela, he cambiado el nombre de 'SchoolDistrict', el nombre de DB, a un 'distrito' más corto. Tengo varias capas eliminadas del DBA, por lo que no es posible cambiarlas en la fuente.

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')

Entonces cuando consulto algo como:

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

Termino con el nombre subyacente 'SchoolDistrict' para la columna, no mi nombre de atributo, en el DataFrame df devuelto.

EDITAR: Un caso aún más molesto es cuando existen nombres de columnas duplicados en las tablas. Por ejemplo:

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)

Por lo tanto, una consulta en ambas tablas (como la siguiente) produce un marco de datos con columnas duplicadas de nombre y apellido.

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

¿Sería posible cambiar el nombre de estas columnas en el momento de la consulta? En este momento tengo problemas para mantener la cabeza recta con estos dos sistemas de nombres de columnas.

Respuestas a la pregunta(1)

Su respuesta a la pregunta