我有 1 列 df,有 37365 行。我需要将其分成如下所示的块:
df[0:2499]
df[2500:4999]
df[5000:7499]
...
df[32500:34999]
df[35000:37364]
Run Code Online (Sandbox Code Playgroud)
这个想法是在如下循环中使用它(process_operation 不适用于大于 2500 行的 dfs)
while chunk <len(df):
process_operation(df[lower:upper])
Run Code Online (Sandbox Code Playgroud)
编辑:我将有不同的数据帧作为输入。其中一些小于 2500。捕获这些的最佳方法是什么?
Ej: df[0:1234] because 1234<2500
Run Code Online (Sandbox Code Playgroud) 在我的存储过程中,我通常会执行立即 q'[要执行的代码]。但是,我的代码中有一些带有“$[*]”的内容。Oracle 将引用和括号解释为我的引用的结尾。我怎样才能摆脱这个?请找到下面的完整代码。
EXECUTE IMMEDIATE q'[
CREATE OR REPLACE VIEW vw_err_text AS
WITH aux AS (
SELECT
err_txt
FROM
u339990_mr2
WHERE
err_txt IS NOT NULL
)
SELECT
error_text,
COUNT(*) AS ct,
round(RATIO_TO_REPORT(COUNT(1)) OVER() * 100, 2) perc
FROM
aux CROSS APPLY
JSON_TABLE(err_txt, '$[*]'
COLUMNS
error_text PATH '$'
)
GROUP BY
error_text
ORDER BY
ct DESC,
error_text
]'
;
Run Code Online (Sandbox Code Playgroud)