如何在SQLalchemy中使用数据帧

2024-10-03 21:33:13 发布

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

我从管道分隔文件中创建了两个人口统计和药物数据的数据帧:

demo='xxyy1046_demo.txt'
demog=pd.read_table(demo, delimiter='|', header=0)
demog.info()

med='xxyy1046_medication.txt'
meds=pd.read_table(med, delimiter='|', header=0)
meds.info() #n=2654

现在我想使用SQLalchemy转换SQL表对象中的这些数据帧,我可以选择、连接、分组等

from sqlalchemy import create_engine, column, select, Table, Metadata
engine = create_engine('sqlite://', echo=False)
demog.to_sql('Demog_sql', con=engine)

metadata = sql.Metadata()
demog_sql = Table('Demog_sql', metadata, autoload=True, autoload_with=engine)
stmt = select([demog_sql.columns.FirstName]) 
print(stmt)

我得到的结果是: 选择“Demog_sql”。“FirstName” 来自“Demog_sql”

这不是我想要的!我希望能够使用select语句、联接等操作数据。我在元数据步骤中做了一些错误的事情。我该如何解决这个问题


Tags: 数据infotxtreadsqldemotableselect
1条回答
网友
1楼 · 发布于 2024-10-03 21:33:13

您正在打印语句对象本身的字符串表示形式。看起来你想执行它。例如:

results = engine.execute(stmt).fetchall()

对于连接等,您需要对语句调用更多的方法,最好在tutorial中进行解释,在继续之前应该先阅读该语句

在某些情况下,您不需要将数据上传到SQL,以便在数据帧之间进行连接等Pandas can do those too

相关问题 更多 >