我正在尝试从 clickhouse 获取一些关系数据并在 pandas 中使用。它有效,但 pd.read_sql_query 返回数据帧,其中列名是第一行的值。相反,我希望看到关系表中命名的列名称。
我用 Postgres 做了同样的尝试,它工作正常。
cheng = create_engine('clickhouse://mylogin:[email protected]:PORT/schema')
qry2 = '''select * from myschema.mytable order by a_date desc limit 10'''
dt = pd.read_sql_query(qry, cheng)
dt
返回的数据帧列的标题包含从数据库返回的第一行的值。我希望看到列名称。
看看这个问题:使用 ClickHouse 实现 pandas.read_sql 的正确方法.
我无法在最新版本的模块上重现此行为:
sqlalchemy==1.3.16
sqlalchemy-clickhouse==0.1.5.post0
pandas==1.0.3
这段代码:
import pandas as pd
from sqlalchemy import create_engine
engine = create_engine('clickhouse://default:@localhost/test')
query = 'select * from call_center'
dt = pd.read_sql_query(query, engine)
print(dt)
returns:
cc_call_center_sk cc_call_center_id ... cc_gmt_offset cc_tax_percentage
0 1 AAAAAAAABAAAAAAA ... -5.0 0.11
1 2 AAAAAAAACAAAAAAA ... -5.0 0.12
2 3 AAAAAAAACAAAAAAA ... -5.0 0.01
3 4 AAAAAAAAEAAAAAAA ... -5.0 0.05
4 5 AAAAAAAAEAAAAAAA ... -5.0 0.12
5 6 AAAAAAAAEAAAAAAA ... -5.0 0.11
[6 rows x 31 columns]
PyCharm DataFrame 视图看起来也不错:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)