gpt4 book ai didi

python - Pandasql 查询数据帧列表或字典

转载 作者:行者123 更新时间:2023-12-01 08:44:46 30 4
gpt4 key购买 nike

给定一组文件 - 每个文件都读入不同的 dataframe - pandasql 查询如何引用它们?

在下面的代码片段中,我们有一个 dataframeslist:但同样的问题也适用于 dict:

import pandas as pd
from pandasql import sqldf
# Read in a set of 10 files each containing columns `id` and `estimate`
dfs = [pd.read_csv('file%d.csv' %d) for d in range(1,10+1)]
sql_res = sqldf("select d2.estimate - d1.estimate \
from dfs[1] d1 join dfs[2] d2 on d2.id = d1.id", locals())

dfs[1]dfs[2] 显示了我想要执行的操作 - 但不是有效的语法。关于如何以 pandasql 支持的方式构建此类问题,有什么建议吗?

最佳答案

您可以告诉 pandasql 表名/别名列表,而不是仅仅传递 locals(),根据 PandasSQL.__call__ 的文档字符串(无法在线找到)文档版本):

:param env: Variables environment - a dict mapping table names to pandas dataframes.

请注意,您必须将要查询的所有表放在那里。

这是一个小示例,按照文档字符串中的建议使用 PandasSQL 类而不是 sqldf:

import pandasql

sql = pandasql.PandaSQL()


data_frames = [
pd.DataFrame({'a': [1,2,3]}),
pd.DataFrame({'b': [1,4,5]})
]

# create aliases for your dataframes
env = {'t%d' % (i + 1): df for i, df in enumerate(data_frames)}

# tell pandasql to use the aliases
print(sql('select t1.* from t1 join t2 on t1.a = t2.b', env=env))

关于python - Pandasql 查询数据帧列表或字典,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53354213/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com