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

使用pandas从csv中删除重复项时出错

使用pandas从csv中删除重复项时出错

呼如林 2021-08-24 15:12:15
我的 csv 文件在这个链接上:https://drive.google.com/file/d/1Pac9-YLAtc7iaN0qEuiBOpYYf9ZPDDaL/view?usp=sharing我想通过检查每个艺术家 ID的流派长度来从 csv 中删除重复项。如果艺术家在 csv 中有 2 条记录(例如,ed sheeran的 id 6eUKZXaKkcviH0Ku9w2n3V有 2 条记录,其中一条记录有 1 种类型,而第 5 行有 5 种类型,所以我想保留类型长度最大的行)我现在正在使用这个脚本:import pandasimport astdf = pandas.read_csv('39K.csv', encoding='latin-1')df['lst_len'] = df['genres'].map(lambda x: len(ast.literal_eval(str(x))))print(df['lst_len'][0])df = df.sort_values('lst_len', ascending=False)# Drop duplicates, preserving first (longest) list by IDdf = df.drop_duplicates(subset='ID')# Remove extra column that we introduced, write to filedf = df.drop('lst_len', axis=1)df.to_csv('clean_39K.csv', index=False)但是这个脚本适用于 500 条记录(可能是我认为记录的大小很重要),但是当我为我最大的文件39K.csv运行这个脚本时,我收到了这个错误:Traceback (most recent call last):******* error in line 5, in <module>....    df['lst_len'] = df['genres'].map(lambda x: len(list(x)))    df['lst_len'] = df['genres'].map(lambda x: len(list(x)))TypeError: 'float' object is not iterable请指出我哪里做错了?谢谢
查看完整描述

1 回答

  • 1 回答
  • 0 关注
  • 153 浏览
慕课专栏
更多

添加回答

举报

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