python - 查询 SQLAlchemy 时间到 Pandas 时间(Python)
问题描述
我正在尝试将 SQLalchemy 表查询到 Pandas 数据框并匹配时间。没有日期,只有时间。基本上我只需要在数据库中找到与我的 Pandas 数据框中的时间相匹配的记录。
发布表基本上就是这样的:
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]数据类型 time 和 datetime2 在 equal to 运算符中不兼容。(402) (SQLExecDirectW); [42000] [ Microsoft][SQL Server Native Client 11.0][SQL Server]无法准备语句。(8180)')
如果我尝试将 df.loc[i, 'release'] 转换为日期时间,它会说:
TypeError:不可转换为日期时间
所以我不知道如何比较这两次。据我所知,这两种数据类型都是 datetime.time ,除非我遗漏了什么。
解决方案
好吧,我想通了。我只需要这样做:
for i in df.index:
release = session.query(Release_Table).filter(Release_Table.release_time == str(df.loc[i,'release'])).first()
df.loc[i, 'release'] = release.id
把它变成一个字符串为我解决了它。我会把这个留在这里,以防其他人偶然发现这个问题。
推荐阅读
- r - R - 如何将文件从一个位置复制并粘贴到 s3 存储桶中的另一个位置(使用 aws.s3)?
- ios - 可滚动的全屏视图 swift
- java - OpenDaylight 控制器应用程序缺少依赖项 (Sodium SR1)
- python - 如何允许用户在 Django 中每 30 分钟仅访问一次视图?
- sql-server - Azure Devops Server - 在特定域帐户下部署数据库更新
- flutter - 如何使用 Flutter 在 Android 上强制 iOS 滚动行为?
- c++ - 使用 strcpy_s 将字符串复制到 char*
- python - 追加到列表后列表索引超出范围python
- android - Android 10 上的通话屏幕最小化问题
- python - 使用 boto3 在 Amazon S3 上的文件夹之间移动文件