【发布时间】:2020-06-19 08:18:46
【问题描述】:
我正在尝试将 SQLalchemy 表查询到 Pandas 数据框并匹配时间。没有日期,只有时间。基本上我只需要在数据库中找到与我的 Pandas 数据帧中的时间匹配的记录。
Release Table 基本上就是这样的:
class Release_Table(Base):
__tablename__ = 'Release_Table'
id = Column('Id', Integer, primary_key=True)
release_time = Column('release_time', Time)
而df['release']的数据类型是dtype('O')
所以我这样做:
for i in df.index:
release = session.query(Release_Table).filter(Release_Table.release_time == df.loc[i,'release']).first()
df.loc[i, 'release'] = release.id
当我这样做时,我得到这个错误:
ProgrammingError: ('42000', '[42000] [Microsoft][SQL Server Native Client 11.0][SQL Server]等号运算符中时间和日期时间2的数据类型不兼容。(402) (SQLExecDirectW); [ 42000] [Microsoft][SQL Server Native Client 11.0][SQL Server]无法准备语句。(8180)')
如果我尝试将 df.loc[i, 'release'] 转换为日期时间,它会显示:
TypeError: 不能转换为日期时间
所以我不知道如何比较这两次。据我所知,这两种数据类型都是 datetime.time ,除非我遗漏了什么。
【问题讨论】:
-
您需要提供更多信息。
Release_Table是什么?另外,请显示df的dtypes:df.dtypes -
更新了更多信息。
-
df.loc[i,'release'].time()?
标签: python pandas datetime sqlalchemy