我将以下pandas数据帧作为df,我想查询将从SQL Server数据库返回相应git rebase -i
的{{1}}的每一行,并使用列'id','qty'填充df ,'item','item_description'
df['item']
我正在做以下事情:
item_description
并将其作为带有
的df返回| id | qty | item |
+-----+------+------+
| 001 | 700 | CB04 |
| 002 | 500 | |
| 003 | 1500 | AB01 |
结果:
query = "select item_description from item_book WHERE item in {}".format(tuple(df['item']))
我计划将两个dfs连接在一起,这可能不起作用,因为我在df的第二行中有一个空值而我的查询只返回了两行。
是否有更有效的方法来执行此操作。
答案 0 :(得分:0)
更改SQL查询以返回item和item_description列,为您提供如下数据框:
item item_description
0 CB04 apple
1 AB01 orange
然后你有一个公共列,可用于将merge
函数连接到两个数据框:
pd.merge(original_df, desc_df, on="item", how="left")
我们可以省略on
参数,因为每个数据框中只有一列具有相同的名称,并且pandas会知道它们应该加入什么。但是how
参数是必要的,以保留第一个数据帧(左 -most参数到merge
)中的任何行,这些行在第二个数据帧中没有相应的行数据帧。结果是:
id qty item item_description
0 1 700 CB04 apple
1 2 500 NaN
2 3 1500 AB01 orange
您可以在pandas documentation中了解有关合并的更多信息。