[英]Pandas: How to return the row from dataframe having same row values by using column value of other dataframe?
[英]Group the values using one column and return the one having max value in other column using pandas dataframe
以下是我的數據框示例:
revisionId | itemId | wikidataType
290397666 | 23 | Q5
307190482 | 23 | Q5
292002833 | 80 | Q5
292428272 | 80 | Q5
305018745 | 80 | Q5
305018964 | 80 | Q5
305019084 | 80 | Q5
301731639 | 181 | Q5
303692414 | 181 | Q5
306600439 | 192 | Q5
294596767 | 206 | Q5
294597048 | 206 | Q5
我想使用 itemId 列對元素進行分組,並為每個具有最大修訂 ID 的項目僅返回一行。 我已經根據 wikidataType、itemId 和 revisionId 對它們進行了排序。 以下是我希望我的數據框的樣子:
revisionId | itemId | wikidataType
307190482 | 23 | Q5
305019084 | 80 | Q5
303692414 | 181 | Q5
306600439 | 192 | Q5
294597048 | 206 | Q5
此外,這里這個 wikidataType 列只包含一個值“Q5”。 但是在整個數據框中,有 100 種不同的類型。 但這可能不是問題,因為我可以迭代這 100 種類型,因為我已經修復了它們的值。 有沒有人有這個想法? 預先感謝。
需要sort_values
+ drop_duplicates
與選擇列檢查dupes
,只保留最后一個值:
df = (df.sort_values(by=['wikidataType', 'itemId', 'revisionId'])
.drop_duplicates(['itemId','wikidataType'], keep='last'))
print (df)
revisionId itemId wikidataType
1 307190482 23 Q5
6 305019084 80 Q5
8 303692414 181 Q5
9 306600439 192 Q5
11 294597048 206 Q5
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.