如何创建新变量判断数据列中值是否唯一(泰坦尼克数据集场景)
泰坦尼克数据集船票重复标记的简洁实现
你可以用以下几种更简洁的方式实现需求:
方法1:利用duplicated函数(最简洁)
duplicated(keep=False)会标记所有重复出现的行,直接转成整数就能得到你要的标记列:
import pandas as pd dummy_data = pd.DataFrame({"Ticket" : ['A','A','B','B','C','D']}) # 直接生成标记列 dummy_data['Ticket_multiple'] = dummy_data['Ticket'].duplicated(keep=False).astype(int) print(dummy_data.head(10))
方法2:用groupby+transform
通过分组统计每个船票的出现次数,再判断是否大于1:
import pandas as pd dummy_data = pd.DataFrame({"Ticket" : ['A','A','B','B','C','D']}) # 分组后转换每个元素的出现次数,再判断转成int dummy_data['Ticket_multiple'] = (dummy_data.groupby('Ticket')['Ticket'] .transform('count') > 1).astype(int) print(dummy_data.head(10))
这两种方式都能替代你原来的代码,避免中间变量的繁琐操作,逻辑更清晰。
内容的提问来源于stack exchange,提问作者Mobix
相关产品推荐
相关产品推荐

