【问题标题】:join pandas dataframe with SQL output使用 SQL 输出加入 pandas 数据框
【发布时间】:2016-08-06 19:35:13
【问题描述】:

我有一个 pandas 数据框,其中包含一个合同列表df['contract']。 我有一个 SQL 查询,它给出了合同持有人的名字和姓氏。我需要结合查询和合同列表。

select firstname, lastname from holder where holder_contract= df['contract']

如何从df 创建一个数据框,从我的查询中添加 2 列 firstname 和 lastname?


编辑:我探索的曲目

我为一份合同提取了一个 DF,并且可以加入它。 我创建了一个循环,但连接只匹配一行,因此最终数据框填充了 1 行,其他为空白。如果我想使用合并,我需要创建一个包含所有值的大表。

zip( *map(lambda x: pd.read_sql_query(SQL.format(x),connection).loc[0], df.contract)) 给了我想要的 2 列,但如果没有匹配则失败。

【问题讨论】:

  • 简单地说,用read_sql读入查询并与df合并。在查询中包含连接键 holder_contract
  • df = read_sql("select firstname, lastname from holder where holder_contract= 0123456", engine=...)
  • 你是说我必须先阅读我的表格以提取数据帧,然后加入每个 1 行数据帧?
  • 您是在使用 SQLAlchemy 还是在编写普通查询?
  • 疼痛查询。查询参数是联系电话。我必须迭代合同列以检索我的所有信息

标签: sql python-2.7 pandas


【解决方案1】:

对于普通查询,也许这会起作用:

qry = ("SELECT firstname, lastname "
       "FROM holder "
       "WHERE holder_contract IN {0};".format(tuple(df.contract)))
df = pd.read_sql(qry, engine=...)

【讨论】:

  • 这不起作用,因为我无法执行 IN 语句。我的价值观太多了。
猜你喜欢
  • 1970-01-01
  • 2018-08-04
  • 2021-12-16
  • 1970-01-01
  • 2017-05-29
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多