簡體   English   中英

這是 Pandas 等同於排序分區上的 SQL 密集排名嗎?

[英]Is this the Pandas equivalent of SQL Dense Rank over a Sorted Partition?

我有以下 SQL 片段,我想在 Python 中復制:

SELECT
   DENSE_RANK() OVER (PARTITION BY a0.[field1], a0.[field2] ORDER BY a0.[field3] DESC)  AS [new_field]
   ...
FROM <table>

這是我的嘗試,這等價嗎?

df["new_field"] = df.groupby(["field1", "field2"])["field3"].rank(
    method="dense", ascending=False
)

是的,只要field3是數字就等價。 否則你需要一些操作,比如

df['new_field'] = df.field3.rank(method='dense',ascending = False)
df['new_field'] = df.groupby(['field1','field2'])['new_field'].rank(method='dense').astype(int)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM