问题标签 [pandasql]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
5 回答
65938 浏览

python - Python Pandas to_sql,如何创建带有主键的表?

我想用 Pandas 的 to_sql 函数创建一个 MySQL 表,它有一个主键(在 mysql 表中有一个主键通常很好),如下所示:

但这会创建一个没有任何主键(甚至没有任何索引)的表。

该文档提到了与“index”参数结合使用的参数“index_label”可用于创建索引,但没有提及主键的任何选项。

文档

0 投票
1 回答
1362 浏览

python - 使用 SQL 查询数据框 - Pandasql

我正在从 pandasql 包中导入一个数据框,然后使用 sql 对其进行查询,运行 pandasql cmd 时会显示以下错误。另一方面,print(meat)表明数据已正确导入

InterfaceError:错误绑定参数 0 - 可能是不受支持的类型。

仅供参考:pdsql 是我为使用 pandasql 而创建的别名

0 投票
2 回答
10489 浏览

python - 在多个条件下合并 DataFrames - 不是特别是在相等的值上

首先,对不起,如果这有点冗长,但我想充分描述我遇到的问题以及我已经尝试过的问题。

我正在尝试在多个条件下将两个数据框对象连接(合并)在一起。如果要满足的条件都是“等于”运算符,我知道该怎么做,但是,我需要使用 LESS THAN 和 MORE THAN。

数据框代表遗传信息:一个是基因组中的突变列表(称为 SNP),另一个提供有关人类基因组上基因位置的信息。对这些执行 df.head() 将返回以下内容:

SNP 数据帧 (snp_df):

这显示了 SNP 参考 ID 及其位置。“BP”代表“碱基对”位置。

基因数据框(gene_df):

这个数据框显示了所有感兴趣的基因的位置。

我想找出的是所有落在基因组基因区域内的 SNP,并丢弃那些在这些区域之外的 SNP。

如果我想基于多个(等于)条件将两个数据框合并在一起,我会执行以下操作:

但是,在这种情况下 - 我需要找到染色体值与 Gene 数据框中的值匹配的 SNP,并且 BP 值介于“chr_start”和“chr_stop”之间。使这个具有挑战性的是这些数据帧非常大。在这个当前数据集中,snp_df 有 6795021 行,gene_df 有 34362。

我试图通过分别查看染色体或基因来解决这个问题。由于不使用性染色体,因此有 22 个不同的染色体值(整数 1-22)。这两种方法都需要很长时间。一种使用该pandasql模块,而另一种方法是循环通过单独的基因。

SQL 方法

基因迭代法

任何人都可以就更有效的方法提出任何建议吗?

0 投票
0 回答
112 浏览

python - 使用参数来防止用户输入的搜索值

使用pandassqlite3后端,我可以param安全地提供用户提供的搜索值,ala:

问:有没有办法直接在DataFrame不将其转储到 sqlite 后端(无论是内存中还是文件支持)中进行操作?

类似于:

(显然,这不起作用)。列出的参数pandasql.sqldf不包括任何明显的东西,所以我猜我必须(a)创建一个临时的 sqlite3 内存缓存并针对它进行查询,或者(b)冒 SQL 注入的风险或手动对抗它。后者会使用类似的东西:

现在我正在动态创建“where”变量的列表,所以虽然它在WHERE x = ?这里,但它通常是多个变量和/或变量的多个命中,例如WHERE x like ? OR y like ? OR z > ?. 该字符串的创建很简单,并且比较值列表的创建同样“完成”;麻烦的是使用用户提供的搜索值。

与29501895不同的问题;因为我担心 SQL 注入,所以使用局部变量并不能解决问题。

0 投票
1 回答
5291 浏览

python - 关于 pandasql locals() 和 globals() 方法问题

对于 pandasql 包的 sqldf 方法,有一个“会话/环境变量”,可以是 locals() 或 globals(),谁能告诉我它是做什么用的?任何文档参考什么时候应该使用 locals(),什么时候应该使用 globals()?

https://github.com/yhat/pandasql/

这是我的代码,想知道 pandansql 正在寻找彻底的 locals() 什么东西?locals() 表示方法 select_first_50 内的命名空间?

0 投票
1 回答
2480 浏览

pandas - 带有 pandas.DataFrame.to_csv() 的数字格式列?

我有一个过程,而不是使用以下方法从 Microsoft SQL 数据库中读取信息:

此函数用于许多过程,因此变量sql没有相同的列(变量结构)。

然后我得到例如以下数据:

到目前为止一切都很好。

使用以下方法提取到 csv 时:

输出如下:

STORE 列现在有“.0”...

有没有办法配置函数“to_csv”以准确输出(值),如打印所示?提前致谢。

已解决:问题出在小数选项上:

感谢大家的支持!

0 投票
1 回答
373 浏览

python - 在 Python Pandas 中执行 groupby 和聚合

我有一个看起来像的数据框

time15min列包含用户在手机中玩游戏的 15 分钟存储桶。

我需要做的是为每个用户和每个 time15min 时段创建一个聚合数据框,其中有一列显示玩得最多的游戏以及在此期间是否有任何应用内购买。

所以,结果就像

如果 A 的第一种情况出现平局,我们可以只取第一个字母顺序的平局(在这种情况下是 Clash of Clans)。

0 投票
0 回答
240 浏览

python-2.7 - 在 DataFrame 对象上使用时是否需要清理 pandasql 查询

我有一个简单的应用程序,它使用 pandas 将 csv 文件加载到 DataFrame 中,并继续使用 pandasql 对其执行 sql 操作。其中一些操作来自用户输入。为了测试,我有这条线

其中 filterstring 是原始用户输入。这显然是一个sql注入漏洞。

通常在使用这样的数据库时,您会清理用户输入,但在这种情况下,有必要这样做吗?因为 DataFrame 只存在于内存中,所使用的文件都是本地的,并且实际上对磁盘上的 csv 文件没有做任何事情,如果简单地忽略该查询的输出就无法解决未经处理的 DB 查询会有什么危害?

编辑:毫无疑问,这代表了一个 SQL 注入漏洞。我的问题是:如果数据库只存在于本地 RAM 中,我为什么要关心?

0 投票
0 回答
64 浏览

sql - Python SQL 脚本未运行

有人可以告诉我 SQL 语句是否有问题或此 Python 代码中的任何其他问题吗?我无法让脚本运行。

0 投票
1 回答
370 浏览

regex - sqlite 正则表达式:如何从列中的值返回“X”的计数

我正在使用 pandasql 来转换数据。在查询中,我想提取例如电子邮件地址中的句点数(“。”)。SQLite 似乎不支持正则表达式。

在 SQL 中我可以写:

期待您在 SQLite 解决方案方面的专业知识。先感谢您。