Python处理Spotify数据集报错NameError:'years'未定义求解
解决方案:处理NameError及实现你的需求
1. 解决NameError: 'years' is not defined
这个错误的核心原因是你调用sns.displot时用到的years变量未被创建,按以下步骤修复:
- 先确保用pandas加载Spotify数据集:
import pandas as pd # 替换为你的数据集路径,支持csv、excel等格式 df = pd.read_csv("your_spotify_dataset.csv") - 确认数据集中年份对应的列名:
打印所有列名找到年份列(常见命名如year、release_year):print(df.columns) - 创建
years变量:
将对应列的数据赋值给years:# 把"year"替换成你数据里实际的年份列名 years = df["year"] - 修正绘图代码(注意原代码中
heights参数名错误,应为height):import seaborn as sns sns.displot(years, discrete=True, aspect=2, height=5, kind="hist").set(title="Number of songs per year")
2. 实现你原本的需求:绘制折线图展示每年歌曲时长
你提到计划画折线图展示每年歌曲时长,但原代码用的是直方图(展示每年歌曲数量),以下是对应折线图的实现:
- 先按年份分组计算平均时长(或总时长,按需调整):
# 假设歌曲时长列名为"duration_ms",替换为实际列名 yearly_avg_duration = df.groupby("year")["duration_ms"].mean().reset_index() - 用seaborn绘制折线图:
sns.relplot(data=yearly_avg_duration, x="year", y="duration_ms", kind="line", aspect=2, height=5).set(title="Average song duration per year")
内容的提问来源于stack exchange,提问作者Harish V
相关产品推荐
相关产品推荐

