Excel样本数据请参考Python读取Excel文件并统计演员参演电影
>>> import pandas as pd
>>> df = pd.read_excel('电影导演演员.xlsx')
>>> df
电影名称 导演 演员
0 电影1 导演1 演员1,演员2,演员3,演员4
1 电影2 导演2 演员3,演员2,演员4,演员5
2 电影3 导演3 演员1,演员5,演员3,演员6
3 电影4 导演1 演员1,演员4,演员3,演员7
4 电影5 导演2 演员1,演员2,演员3,演员8
5 电影6 导演3 演员5,演员7,演员3,演员9
6 电影7 导演4 演员1,演员4,演员6,演员7
7 电影8 导演1 演员1,演员4,演员3,演员8
8 电影9 导演2 演员5,演员4,演员3,演员9
9 电影10 导演3 演员1,演员4,演员5,演员10
10 电影11 导演1 演员1,演员4,演员3,演员11
11 电影12 导演2 演员7,演员4,演员9,演员12
12 电影13 导演3 演员1,演员7,演员3,演员13
13 电影14 导演4 演员10,演员4,演员9,演员14
14 电影15 导演5 演员1,演员8,演员11,演员15
15 电影16 导演6 演员14,演员4,演员13,演员16
>>> pairs = []
>>> for i in range(len(df)):
actors = df.at[i, '演员'].split(',')
for actor in actors:
pair = (actor, df.at[i, '电影名称'])
pairs.append(pair)
>>> pairs = sorted(pairs, key=lambda item:int(item[0][2:]))
>>> pairs
[('演员1', '电影1'), ('演员1', '电影3'), ('演员1', '电影4'), ('演员1', '电影5'), ('演员1', '电影7'), ('演员1', '电影8'), ('演员1', '电影10'), ('演员1', '电影11'), ('演员1', '电影13'), ('演员1', '电影15'), ('演员2', '电影1'), ('演员2', '电影2'), ('演员2', '电影5'), ('演员3', '电影1'), ('演员3', '电影2'), ('演员3', '电影3'), ('演员3', '电影4'), ('演员3', '电影5'), ('演员3', '电影6'), ('演员3', '电影8'), ('演员3', '电影9'), ('演员3', '电影11'), ('演员3', '电影13'), ('演员4', '电影1'), ('演员4', '电影2'), ('演员4', '电影4'), ('演员4', '电影7'), ('演员4', '电影8'), ('演员4', '电影9'), ('演员4', '电影10'), ('演员4', '电影11'), ('演员4', '电影12'), ('演员4', '电影14'), ('演员4', '电影16'), ('演员5', '电影2'), ('演员5', '电影3'), ('演员5', '电影6'), ('演员5', '电影9'), ('演员5', '电影10'), ('演员6', '电影3'), ('演员6', '电影7'), ('演员7', '电影4'), ('演员7', '电影6'), ('演员7', '电影7'), ('演员7', '电影12'), ('演员7', '电影13'), ('演员8', '电影5'), ('演员8', '电影8'), ('演员8', '电影15'), ('演员9', '电影6'), ('演员9', '电影9'), ('演员9', '电影12'), ('演员9', '电影14'), ('演员10', '电影10'), ('演员10', '电影14'), ('演员11', '电影11'), ('演员11', '电影15'), ('演员12', '电影12'), ('演员13', '电影13'), ('演员13', '电影16'), ('演员14', '电影14'), ('演员14', '电影16'), ('演员15', '电影15'), ('演员16', '电影16')]
>>> index = [item[0] for item in pairs]
>>> data = [item[1] for item in pairs]
>>> df1 = pd.DataFrame({'演员':index, '电影名称':data})
>>> result = df1.groupby('演员', as_index=False).count()
>>> result
演员 电影名称
0 演员1 10
1 演员10 2
2 演员11 2
3 演员12 1
4 演员13 2
5 演员14 2
6 演员15 1
7 演员16 1
8 演员2 3
9 演员3 10
10 演员4 11
11 演员5 5
12 演员6 2
13 演员7 5
14 演员8 3
15 演员9 4
>>> result.columns = ['演员', '参演电影数量']
>>> result
演员 参演电影数量
0 演员1 10
1 演员10 2
2 演员11 2
3 演员12 1
4 演员13 2
5 演员14 2
6 演员15 1
7 演员16 1
8 演员2 3
9 演员3 10
10 演员4 11
11 演员5 5
12 演员6 2
13 演员7 5
14 演员8 3
15 演员9 4
>>> result.sort_values('参演电影数量')
演员 参演电影数量
3 演员12 1
6 演员15 1
7 演员16 1
1 演员10 2
2 演员11 2
4 演员13 2
5 演员14 2
12 演员6 2
8 演员2 3
14 演员8 3
15 演员9 4
11 演员5 5
13 演员7 5
0 演员1 10
9 演员3 10
10 演员4 11