问题是这样的:“我们导出了豆瓣电影排名的 top250,现要统计不同导演所导演的电影在榜单中的数量,按照导演的电影数量排序,将导演的电影数量大于等于 3 的导演以及其导演的电影,使用 print 函数输出到屏幕。要求格式化对齐输出。”
问题相关代码
import pandas as pd
df=pd.read_excel('豆瓣电影排行榜.xlsx')#导入数据
lis1=df['导演'].drop_duplicates().values.tolist()#取出导演存入列表
lis2=df['影名'].drop_duplicates().values.tolist()#取出影名存入列表
lis=[]
lis4=[]
#按导演分类,对导演字段进行计数,存为字典
df_count=dict(df.groupby('导演',)['导演'].count())
#取出计数后的导演和影名分别存入列表
dr=list(df_count.keys())
dn=list(df_count.values())
n=len(df_count)#175
#将电影数大于等于3的导演和影名存入新列表L
for i in range(n):
lis4.append([lis1[i],lis2[i]])
if dn[i]>=3:
lis.append([dr[i],dn[i]])
#对新列表L按电影数降序排序
L=sorted(lis,key=lambda x:(x[1]),reverse=True)
#把列表转为字典,便于之后存入每个导演对应的电影
dic=dict(L)
#建立一个与L长度相同的列表,用于存电影
movie=[i for i in range(len(L))]
#尝试把每个电影数大于等于3的导演导的电影存入字典的值里
for keys in dic:
for i in range(n):
for j in range(len(L)):
if lis4[i][0]==L[j][0]:
movie[j]+=lis4[i][1]
运行结果及报错内容
TypeError: unsupported operand type(s) for +=: 'int' and 'str'
我想使用“+=”方法把多部电影存入一个导演对应的value中,但是运行报错(如上)
我想要达到的结果
因为字典中的每个导演对应不止一部电影,但是在上面的for循环中我只能做到每个导演对应1部电影,其他的属于那个导演的电影没办法加入到对应的value中去,“+=”也没办法使用,没有头绪了
数据和实验指导在这里
链接:https://pan.baidu.com/s/11Db8wYGhQNEj2zUV0mCkMw?pwd=1234
提取码:1234
希望哪位朋友可以给予解答 ^ 0 ^(有更简单的方法当然更好,个人感觉自己的办法比较麻烦,但是想不到其他办法>_<)
import pandas as pd
df = pd.read_excel('豆瓣电影排行榜.xlsx')
lis1 = df['导演'].tolist()
lis2 = df['影名'].tolist()
dic1,dic2 = {},{}
for i in lis1:
dic1[i] = dic1.get(i, 0) + 1
for i,n in enumerate(lis1):
dic2[n] = dic2.get(n, []) + [lis2[i]]
for k,v in sorted(dic1.items(),key=lambda x:x[1], reverse=True):
if v>=3:
print(f"【导演】:{k}\n【片数】:{v}\n【作品】:{' '.join(dic2[k])}\n")
输出结果:
【导演】:克里斯托弗·诺兰
【片数】:7
【作品】:星际穿越 蝙蝠侠:黑暗骑士 致命魔术 追随 盗梦空间 蝙蝠侠:黑暗骑士崛起 记忆碎片
【导演】:宫崎骏
【片数】:7
【作品】:龙猫 天空之城 幽灵公主 风之谷 哈尔的移动城堡 魔女宅急便 千与千寻
【导演】:史蒂文·斯皮尔伯格
【片数】:6
【作品】:辛德勒的名单 E.T. 人工智能 拯救大兵瑞恩 猫鼠游戏 幸福终点站
【导演】:王家卫
【片数】:5
【作品】:重庆森林 花样年华 阿飞正传 春光乍泄 东邪西毒
【导演】:大卫·芬奇
【片数】:4
【作品】:搏击俱乐部 本杰明·巴顿奇事 七宗罪 消失的爱人
【导演】:昆汀·塔伦蒂诺
【片数】:4
【作品】:罪恶之城 低俗小说 无耻混蛋 被解救的姜戈
【导演】:李安
【片数】:4
【作品】:少年派的奇幻漂流 饮食男女 断背山 喜宴
【导演】:彼得·杰克逊
【片数】:3
【作品】:指环王3:王者无敌 指环王1:魔戒再现 指环王2:双塔奇兵
【导演】:刘镇伟
【片数】:3
【作品】:大话西游之大圣娶亲 大话西游之月光宝盒 射雕英雄传之东成西就
【导演】:朱塞佩·托纳多雷
【片数】:3
【作品】:天堂电影院 西西里的美丽传说 海上钢琴师
【导演】:吴宇森
【片数】:3
【作品】:变脸 纵横四海 英雄本色
【导演】:弗朗西斯·福特·科波拉
【片数】:3
【作品】:教父 教父2 教父3
【导演】:理查德·柯蒂斯
【片数】:3
【作品】:时空恋旅人 海盗电台 真爱至上
【导演】:詹姆斯·卡梅隆
【片数】:3
【作品】:泰坦尼克号 终结者2:审判日 阿凡达
【导演】:姜文
【片数】:3
【作品】:阳光灿烂的日子 鬼子来了 让子弹飞