【发布时间】:2021-12-27 09:35:10
【问题描述】:
我想在 Python 中将 db 放入 pandas df。我使用以下代码:
self.cursor = self.connection.cursor()
query = """
SELECT * FROM `an_visit` AS `visit`
JOIN `an_ip` AS `ip` ON (`visit`.`ip_id` = `ip`.`ip_id`)
JOIN `an_useragent` AS `useragent` ON (`visit`.`useragent_id` = `useragent`.`useragent_id`)
JOIN `an_pageview` AS `pageview` ON (`visit`.`visit_id` = `pageview`.`visit_id`)
WHERE `visit`.`visit_id` BETWEEN %s AND %s
"""
self.cursor.execute(query, (start_id, end_id))
df = pd.DataFrame(self.cursor.fetchall())
此代码有效,但我也想获取列名。我试过这个问题MySQL: Get column name or alias from query
但这不起作用:
fields = map(lambda x: x[0], self.cursor.description)
result = [dict(zip(fields, row)) for row in self.cursor.fetchall()]
如何将列名从 db 获取到 df?谢谢
【问题讨论】:
-
你能解释一下“获取列名”是什么意思吗?你想要的输出是什么?
-
@sophocles 现在我的 df 的名称分别为 1、2、3、...、25。我想在 DB 中使用相同的名称,即
ip_id、@987654325 @等 -
当你说上面的代码不起作用时,是产生错误还是没有给你预期的输出?
-
@Jayvee 我已经解决了,看我的回答,谢谢你的努力!
-
酷,很高兴听到这个消息