Pandas df读取每一行,在d中返回一个新列的SQL查询

2024-10-16 17:29:05 发布

您现在位置:Python中文网/ 问答频道 /正文

我有以下pandas dataframe作为df,我想查询df['item']的每一行,这些行将从SQL Server数据库返回相应的item_description,并用列“id”、“qty”、“item”、“item”填充df

|  id | qty  | item |
+-----+------+------+
| 001 |  700 | CB04 |
| 002 |  500 |      |
| 003 | 1500 | AB01 |

我在做以下事情:

^{pr2}$

并以df的形式返回

pd.read_sql_query(query, cnxn)

结果:

| item_description |
+------------------+
| apple            |
| orange           |

我计划将两个df连接在一起,这样做可能行不通,因为df的第二行有一个空值,而我的查询只返回了两行。在

有没有更有效的方法来做这件事。在


Tags: id数据库dataframepandasdfsqlserverdescription
1条回答
网友
1楼 · 发布于 2024-10-16 17:29:05

将SQL查询更改为同时返回item和item_description列,以便为您提供如下数据帧:

   item item_description
0  CB04            apple
1  AB01           orange

然后有一个公共列,可以使用merge函数连接两个数据帧:

^{pr2}$

我们可以省略on参数,因为每个数据帧中只有一列具有相同的名称,pandas会发现这是它们应该连接的地方。但是how参数对于保留第一个数据帧(left-大多数参数到merge)中的第二个数据帧中没有相应行的任何行是必需的。结果是:

   id   qty  item item_description
0   1   700  CB04            apple
1   2   500                    NaN
2   3  1500  AB01           orange

您可以在pandas documentation中阅读有关合并的更多信息。在

相关问题 更多 >