[英]How to write the following SQL statement in pandas dataframe?
幾天前我剛進入 pandas。 我想試試我以前用 SQL 做的事情,然后用 pandas dataframe 試試,不使用 pandasql,誰能給我一些線索?
> SELECT TOP 1 col FROM ( SELECT
> col AS col,
> LEN(col) AS length,
> CAST(LEFT(col, 20) AS numeric(20,0)) AS col_p1,
> (CASE
> WHEN LEN(col) > 20 THEN CAST(RIGHT(col,LEN(col) - 20) AS numeric(20,0))
> END) AS col_p2 FROM table_a WHERE SIGN(CAST(LEFT(col,2) AS SMALLINT)) = 1 ORDER BY length DESC, col_p1 DESC, col_p2 DESC )
您可以將查詢轉換為樹和 go 從葉子到根節點(又名關系代數樹)。 這就是我的意思:
SELECT [COLUMNS] FROM table_a WHERE [CONDITION] ORDER BY [CRITERIA]
WHERE SIGN(CAST(LEFT(col,2) AS SMALLINT)) = 1
# equivalent to mask = df['col'].apply(lambda val: int(val[:2]) > 0 )
# and then you apply the mask to the dataframe
CAST(LEFT(col, 20) AS numeric(20,0)) AS col_p1,
(CASE
WHEN LEN(col) > 20 THEN CAST(RIGHT(col,LEN(col) - 20) AS numeric(20,0))
END) AS col_p2
# for those 2, you can generate a numpy array and add it to the dataframe
# and then you rename your columns :
# df.columns = [...]
sort_values
ORDER BY length DESC, col_p1 DESC, col_p2 DESC
# equivalent to df.sort_values(by =['length',...],ascending=False)
SELECT TOP 1 col FROM T
# equivalent to T[:1,'col']
其中 T = 是嵌套表。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.