Python 使用SQLAlchemy查询数据时的SAWarning

Python 使用SQLAlchemy查询数据时的SAWarning,python,pandas,sqlalchemy,Python,Pandas,Sqlalchemy,我正在将SQLAlchemy映射的星型模式直接查询到pandas数据帧中,并从pandas中得到了我想要解决的恼人的警告。这是一个简化的版本 class School(Base): __tablename__ = 'DimSchool' id = Column('SchoolKey', Integer, primary_key=True) name = Column('SchoolName', String) district = Column('SchoolDistrict', String

我正在将SQLAlchemy映射的星型模式直接查询到
pandas数据帧
中,并从
pandas
中得到了我想要解决的恼人的警告。这是一个简化的版本

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'

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

student = relationship("Student", backref='studentscore')
school = relationship("School", backref='studentscore')
我用如下语句查询日期:

standard = session.query(StudentdScore, School).\
join(School).filter(School.name.like('%Dever%'))

testdf = pd.read_sql(sch.statement, sch.session.bind)   
然后得到这个警告:

SAWarning: Column 'SchoolKey' on table <sqlalchemy.sql.selectable.Select at 0x1ab7abe0; Select object> being replaced by Column('SchoolKey', Integer(), table=<Select object>, primary_key=True, nullable=False), which has the same key.  Consider use_labels for select() statements.
SAWarning:表上的'SchoolKey'列被具有相同键的列('SchoolKey',Integer(),table=,primary_key=True,nullable=False)替换。考虑Suffor()语句的UpjyLabor。
我的联接中包含的每个附加表(类)都会出现此错误。消息始终指向外键

其他人是否遇到此错误并确定根本原因?还是你也会忽略它

编辑/更新:


这些人似乎在谈论一个相关的问题,但他们使用不同的方法来引入数据帧,并希望保留副本,而不是丢弃副本。有人想过如何实现类似样式的函数,但在查询返回时删除重复的函数吗?

关于它的价值,这里是我有限的答案

对于以下锯切:

SAWarning: Column 'SchoolKey' on table <sqlalchemy.sql.selectable.
Select at 0x1ab7abe0; Select object> being replaced by Column('SchoolKey', Integer(), table=<Select object>, primary_key=True, nullable=False), which has the same key.  
Consider use_labels for select() statements.
SAWarning:表上的'SchoolKey'列被具有相同键的列('SchoolKey',Integer(),table=,primary_key=True,nullable=False)替换。
考虑Suffor()语句的UpjyLabor。
它实际上告诉您,即使列位于不同的表中,也有名称重复的列。在大多数情况下,这是无害的,因为列是简单的连接键。但是,我也遇到过这样的情况:表中包含由不同填充列重复命名的列(即名为column的教师表和名为column的学生表)。在这些情况下,请使用类似的方法重命名pandas dataframe,或重命名底层数据库表

我会密切关注这个问题,如果有人有更好的答案,我会很乐意给出答案