Pandas调用DataFrame多列报错:KeyError问题求助
解决KeyError问题:正确选择DataFrame列并获取前10长歌曲
错误原因
你用df.loc[['duration_min','name']]会报错,是因为loc的语法规则:df.loc[行筛选条件, 列筛选条件]。当你只传一个列表参数时,它会默认把这个列表当成行索引值去匹配,而你的DataFrame索引里根本没有duration_min和name这两个值,所以触发了KeyError。
正确写法
方法1:用loc明确指定行和列
冒号:代表选择所有行,后面的列表指定要提取的列:
# 假设你已经按duration_min降序排好序 df.loc[:, ['duration_min', 'name']].head(10)
方法2:直接用方括号选列(更简洁)
如果不需要复杂的行筛选,直接用方括号选择列列表更简单:
df[['duration_min', 'name']].head(10)
完整流程参考
如果还没完成排序,完整代码应该是这样:
# 按时长降序排序 df_sorted = df.sort_values(by='duration_min', ascending=False) # 提取前10行的指定列 top_10_songs = df_sorted[['duration_min', 'name']].head(10)
内容的提问来源于stack exchange,提问作者faithodiaka
相关产品推荐
相关产品推荐

