问题标签 [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.
python-3.x - 如何在python中迭代pandas数据框行并根据行中存在的值创建新列
我有一个患者数据框,样本看起来像这样。
pat_id 药物日期 lag_date lag_grace_dte
1234 A 1-Jan-17 1-Jan-17 11-Jan-17
1234 A 11-Jan-17 1-Jan-17 1-Jan-17
1234 A 26-Jan-17 11-Jan-17 26-Jan- 17
1234 A 2017 年 2 月 5 日 17 年 1 月 26 日 17 年 2 月 15 日
样本数据和所需的输出 和输出应基于患者 ID、日期和 lag_grace_date 列。
以下是业务标准。我正在尝试为患者建立一个储存算法
如果患者“1234”在“2017 年 1 月 1 日”服用了“A”药物 20 天,那么他的下一次就诊日期(日期)应该是“2017 年 1 月 21 日”。这应该根据以下内容与 lag_grace_dte 进行检查。如果他的下一个日期小于 lag_grace 日期,那么我们应该为该行中的该患者修改日期列为 lag_grace_dte +1。
输出如下所示:
提前致谢。
下面是我正在尝试的代码,但它给了我日期列作为输出,没有任何改变。我是 python 新手,请就此提出建议。
上述代码的输出:
mod_date
2017 年 1 月 1 日 17 年 1 月 11 日 17 年 1 月 26 日 2017 年 2 月 5 日
python - pandasql 中的查询错误
我对 PandaSQL 很陌生,以前从未使用过它。到目前为止,这是我的代码:
我收到此错误:
任何帮助都会很棒!
编辑:在执行以下其他用户的一些建议后,这是我的工作代码:
python - 使用 pandasql 连接两个表
我正在使用 Pandasql 在 Python 中运行 SQL 查询。查询 x、y 和 z 工作正常,但 u 给出错误
错误信息是
PandaSQLException: (sqlite3.OperationalError) no such table: iata [SQL: 'select * from flight f, iata i where f.ORIGIN = i.IATA;']
问题:你怎么了?看起来我们可以在连接中使用别名而不提及左、右、内部等。这是真的吗?
python - 多处理 Pandas SQL
当我在 mp 库启动的每个处理器中对分块 Pandas 数据帧使用多处理时,我得到一个未找到表的错误。
我以下列方式将 pandasql 库用于 SQL:
这适用于单线程:
当我应用多处理并行处理每个 df 块时,它不起作用:
我得到的错误如下:
PandaSQLException:(sqlite3.OperationalError)没有这样的表:数据[SQL:'select * from data'](此错误的背景: http ://sqlalche.me/e/e3q8 )
我明白错误告诉我什么。基本上,在数据库中找不到每个处理器中的数据 DF。我不确定这个问题的解决方法是什么。任何输入将不胜感激。谢谢你。
python - 当数据框中的值(RxC)数超过 999 时,Python pandasql sqldf 给出“太多 SQL 变量”
背景:
我最终试图加入两个位于完全不同数据库中的表。我已经将数据加载到数据帧中,目的是通过 sqldf 执行 SQL 连接(因为连接是不等式的,而且我对 SQL 很熟悉,但在 python 中不太舒服)。
环境:
- Anaconda 上的 Jupyter 笔记本
- 熊猫SQL 0.7.3
- Numpy 1.14.3
- SQLAlchemy 1.2.7
- Python 3.6.5
- 视窗 10
问题:
我可以使用一个简单的内置数据集和一个非常简单的查询来重现这个问题。以下代码:
返回:
OperationalError:SQL 变量太多
最终,这会追溯到 sqlite3,其中“INSERT INTO”语句为每一行使用一组 8 元组参数,然后将值传递给这些参数:
我还通过将简单的 CSV 加载到数据框 (500,2) 中重现了此错误。如果我将 CSV/df 从 500 行减少到 499 行,那么 sqldf 可以正常工作。
为了寻找解决方案,我阅读了大量关于 SQLite 的 999 参数限制的信息。但是,我已经看到很多 使用内置数据集的 示例。尤其是最后一个示例,它直接来自 pandasql 存储库。运行该示例中的代码,处理 iris 数据 (150x6) 的部分运行良好,而肉类数据 (827x8) 导致上述参数错误。
我在StackOverflow上找到了有关此问题的另一个参考,但那里没有任何活动。
python-3.x - PandaSQL 很慢
出于数据分析的目的,我目前正在从 R 切换到 Python (anconda/Spyder Python 3)。在 RI 中使用了很多 R sqldf。由于我擅长 sql 查询,所以我不想重新学习 data.table 语法。使用 R sqldf,我从来没有遇到过性能问题。
现在,在 Python 中,我尝试使用 pandasql 一个简单的df = "SELECT * From table LIMIT 1"
将永远持续 193k 行,19 列。
我尝试了 pysqldf 但我收到一个错误,说该表不存在,但它确实存在。
我错过了什么吗?在“学习熊猫查询语法”之前更喜欢 pandasql/pysqldf 答案。
R 中的 Sqldf 在 i7/12G ram 笔记本电脑上对多达 1000 万行的表进行复杂查询。
谢谢 !
python - Pandas 根据列将两行合并为一行
我有 2 行看起来像这样,
我希望将它们合并为一个:
不知道如何在 Pandas 中实现这一点。任何指针将不胜感激!提前致谢
python - 在 pandasql 中使用字典值
我有一本字典,其中包含数据框的值,就像这样 -
然后我使用pandasql
模块来执行一个简单的查询。
这给出了一个错误 -
但是,如果我添加一个额外的步骤,它确实有效 -
如何使用上面的第一个选项?
python-2.7 - 使用 pd.read_sql() 从 oracle 数据库中提取大数据(>500 万条记录),使得 sql 执行非常慢
- 最初尝试使用 pd.read_sql()。
- 然后我尝试使用 sqlalchemy,查询对象,但是这些方法都没有用,因为 sql 执行了很长时间并且它永远不会结束。
- 我尝试使用提示。
我猜问题如下:Pandas 在后台创建了一个光标对象。使用 cx_Oracle 我们不能影响将使用的“arraysize”参数,即总是使用默认值 100,这太小了。
/li>
如果有人能在这方面帮助我,那就太好了。提前致谢。