python - 删除重复项后替换列值
问题描述
我有一个数据框:
id time
Uk6 year
36h year
Uk6 two-year
rf5 month
gg7 year
rf5 half-year
我需要根据列“id”删除重复项,并将重复行的时间值替换为“未知”。结果应该是:
id time
Uk6 unknown
36h year
rf5 unknown
gg7 year
我为之前的问题(like_this)尝试了建议的答案,但它们不起作用。
解决方案
尝试以下
# create the dataframe
df = pd.DataFrame(data={'id': ['Uk6', '36h', 'Uk6', 'rf5', 'gg7', 'rf5'],
'time': ['year', 'year', 'two-year', 'month', 'year', 'half-year']})
# get duplicated id's
dups_id = df[df.duplicated(subset='id')]['id']
# remove rows from dataframe with id that has duplicated rows
df = df.drop_duplicates(subset='id')
# replace values of 'time' for those rows with duplicated id's with 'unknown'
df.loc[:,'time'] = df['time'].where(~df['id'].isin(dups_id), other='unknown')
输出
id time
0 Uk6 unknown
1 36h year
3 rf5 unknown
4 gg7 year
推荐阅读
- javascript - 材料表反应,在编辑或添加新行之前运行自定义函数
- php - WooCommerce 迷你购物车片段 - 刷新片段时如何加载脚本
- java - 按字母顺序对java中的字符串列表进行排序
- flutter - Flutter:如何在 TextField 的 onSubmitted() 上关闭键盘而不会失去焦点
- python - 如何从数值中找到日期字符串?
- mysql - 将多个表合并到一个新表中的一行
- swiftui - 如何在视图中的单个 VStack 中添加多个按钮(Xcode12,SwiftUI)
- kubernetes - Hashicorp Vault - Agent Injector - 有意义吗?
- azure-synapse - 高级 SME 在 Azure Synapse Analytics 中的作用是什么?
- excel - 根据包含内容的列中的最后一个单元格选择范围