[英]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.