2024-05-14 11:29:57 发布
网友
如果一个值在一列中出现两次以上,我想删除它出现的每一行
输入df如下所示:
Name Num X 1 X 2 Y 3 Y 4 X 5
输出df如下所示:
Name Num Y 3 Y 4
我知道删除重复项是可能的,但是只有当我想删除找到的第一个或最后一个重复项,而不是第n个重复项时,这种方法才有效
df = df.drop_duplicates(subset = ['Name'], drop='third')
这个代码是完全错误的,但它有助于解释我试图做什么
使用^{}作为计数器并过滤所有值,不像2:
2
df1 = df[df.groupby('Name').cumcount() < 3] print (df1) Name Num 0 X 1 1 X 2 2 Y 3 3 Y 4
细节:
print (df.groupby('Name').cumcount()) 0 0 1 1 2 0 3 1 4 2 dtype: int64
编辑
按^{}和^{}筛选:
df1 = df[df.groupby('Name')['Num'].transform('size') < 3] print (df1) Name Num 2 Y 3 3 Y 4
使用head
head
df.groupby('Name').head(2) Out[375]: Name Num 0 X 1 1 X 2 2 Y 3 3 Y 4
s=df.groupby('Name').size()<=2 df.loc[df.Name.isin(s[s].index)] Out[380]: Name Num 2 Y 3 3 Y 4
使用^{} 作为计数器并过滤所有值,不像
2
:细节:
编辑
按^{} 和^{} 筛选:
使用
head
相关问题 更多 >
编程相关推荐