簡體   English   中英

熊貓:如何按列選擇第一個或最后一個與 drop_duplicates 保持一致

[英]pandas: how to select first or last by column in keep with drop_duplicates

如下圖,name 必須放在fisrt中, team 放在last中。

如何使用.drop_duplicates()或其他方式完成此操作?

   name  team ...
0  john  a    ...
1  mike  b    ...
2  john  c

↓

   name  team ...
0  john  c    ...
1  mike  b    ...

-- 關於評論的補充說明 --

.groupby('name').agg({'team': 'last', 'country': 'first'})

現在的工作方式,如果country的第一行是Nan如果 country 的第一行是 Nan,那么會得到一個不是first一個的值,如下所示。

這是因為Nan的案子被忽略了嗎? 即使指定了first first NanNan仍然必須保留。

   name  team  country ...
0  john   a    Nan     ...
1  mike  b     Brazil  ...
2  john  c     Canada  ...

↓

   name  team  country ...
0  john  c     Canada  ...
1  mike  b     Brazil  ...

您可以使用.groupby()函數:

df.groupby('name').agg({'team': 'last'})

請注意,每個名稱返回的值取決於數據框的排序。

暫無
暫無

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

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