python - 删除列中的重复值,保留行
问题描述
我有一个类似于删除重复项的问题,但我需要保留具有重复值的行。所以本质上,我需要保留第一个值,然后用''替换它的每个重复。
Col1 Col2
a 1
b 1
c 1
d 2
我需要的是:
Col1 Col2
a 1
b
c
d 2
谢谢。
解决方案
使用duplicated
替换值来清空字符串 - 但得到混合值 - 带有字符串的数字,因此某些函数应该失败。更好的是替换为NaN
s,尽管integer
s 被转换为float
s。
df.loc[df['Col2'].duplicated(), 'Col2'] = ''
#if want numeric column
#df.loc[df['Col2'].duplicated(), 'Col2'] = np.nan
更快的选择:
df['Col2'] = np.where(df['Col2'].duplicated(), '', df['Col2'])
print (df)
Col1 Col2
0 a 1
1 b
2 c
3 d 2
推荐阅读
- csv - 更新分隔行中的第 n 个元素 [unix 脚本]
- python - 使用返回值为soup.select 的map 来获取表头
- angular - Keycloak - 未在路径上设置 MediaType
- python - 二维数组的 Numpy 梯度
- php - 用两个分隔符拆分字符串并保持顺序和分隔符
- powershell - 检测管道中外部程序的方法已退出
- flutter - Pub 重命名目录失败
- kubernetes - Google Kubernetes GitLab 应用程序安装 SSL 问题
- curl - 在 CurlHttpClient 中设置 CURLOPT_COOKIEFILE
- flutter - 如何将 HookWidget 与 useTextEditingController 一起使用