为了账号安全,请及时绑定邮箱和手机立即绑定

dataframe 使用 set() 查找 2015 年所有新计算机

dataframe 使用 set() 查找 2015 年所有新计算机

呼啦一阵风 2023-12-26 15:51:38
我有一个数据框,其中包含不同生产商的许多计算机,在不同年份发布,他们的销售数字......现在,我的目标是找到 2015 年发布的所有以前几年都不存在的新计算机。这意味着我必须控制计算机名称是否在 2015 年之前的任何年份中列出,如果是,我想删除 2015 年列表中的这些计算机名称。此外,还有2016、2017年发布的电脑……不应该被忘记。我想要知道这些新电脑的数量。好吧,我有很多值,我不知道名称是否重复,只是年份不同,但这是我的第一个想法。df_noduplicates=df[df.Year<2016](subset=['Name'], keep='first')df_Year2013 = df[df.Year==2015]print(df_Year2015.shape(0))但我只收到错误“DataFrame”对象在运行后不可调用。应该是因为第一行的原因,但我不知道,我做错了什么。另一个问题是,我应该使用“set”来解决这个练习,但我不知道如何在这种情况下使用它。提前谢谢你的帮助。:)
查看完整描述

1 回答

?
江户川乱折腾

TA贡献1851条经验 获得超5个赞

怎么样 :


#find all computers' names present before 2015

s = set(df[df.Year<2015]['Name'])


# extract from the dataframe the lines where the name isn't already in s AND are there in 2015 (be carefull about those parenthesis)

subset_df = df[(df.Name.isin(s)==False) & (df.Year==2015)]


#print the names directly from the subset :

new_names  = subset_df['Name'].tolist()

print(new_names)


查看完整回答
反对 回复 2023-12-26
  • 1 回答
  • 0 关注
  • 86 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信