处理Netflix数据集:拆分导演列并解决绘图前代码报错
Netflix数据集导演列拆分方案(解决show_id未找到错误)
你在处理Netflix数据集时,想要将包含多位导演的列拆分为单独行,以便统计每位导演每年的影片数量,但现有代码报错“show_id列未找到”,问题出在数据选择和索引处理上,以下是修正方案:
数据集示例
show_id type title director cast country date_added release_year s17 Movie Europe's Most Dangerous Man: Otto Skorzeny in Spain Pedro de Echave García, Pablo Azorín Williams September 22, 2021 2020
单行数据字典形式:
{ 'show_id': ['s17'], 'type': ['Movie'], 'title': ["Europe's Most Dangerous Man: Otto Skorzeny in Spain"], 'director': ['Pedro de Echave García, Pablo Azorín Williams'], 'cast': [''], 'country': [''], 'date_added': ['September 22, 2021'], 'release_year': ['2020'] }
原代码错误分析
你之前的代码中,df_new = df[['title','director']]只保留了title和director列,丢失了show_id;后续把重置后的索引命名为show_id,但原DataFrame的索引并不是show_id列的值,导致merge时找不到匹配的show_id列。
正确拆分方法
方法一:直接处理原DataFrame(简洁高效)
# 拆分导演列并展开为多行 df['director'] = df['director'].str.split(',') df_exploded = df.explode('director') # 清理导演名字前后的空格(避免因空格导致统计错误) df_exploded['director'] = df_exploded['director'].str.strip()
方法二:不修改原DataFrame(更安全)
如果不想改动原始数据,用assign方法创建新列后展开:
df_exploded = df.assign(director=df['director'].str.split(',')).explode('director') df_exploded['director'] = df_exploded['director'].str.strip()
统计导演年度影片数量(用于绘图)
拆分完成后,直接按年份和导演分组统计:
# 统计每位导演每年的影片数量 director_year_stats = df_exploded.groupby(['release_year', 'director'])['show_id'].count().reset_index(name='film_count') # 示例:用matplotlib绘图 import matplotlib.pyplot as plt # 取部分数据示例(比如2020年的导演数据) subset = director_year_stats[director_year_stats['release_year'] == 2020] plt.bar(subset['director'], subset['film_count']) plt.xticks(rotation=45) plt.xlabel('导演') plt.ylabel('影片数量') plt.title('2020年导演影片数量统计') plt.show()
内容的提问来源于stack exchange,提问作者logeeks
相关产品推荐
相关产品推荐

