[英]drop_duplicates - ValueError: keep must be either "first", "last" or False
[英]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
Nan
, Nan
仍然必须保留。
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.