You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python 3.10中Pandas删除director和cast列遇KeyError问题求助

问题:Pandas删除列时出现KeyError错误

我有一个包含电影信息的CSV文件,想要删除其中的director和cast列,但Pandas提示KeyError错误。

源代码

import pandas as pd

if __name__ == '__main__':
    df = pd.read_csv(r'titles.csv', sep='\t')

    info = df.info

    # print(df.head())
    # print(df.tail())

    # print('dftypes: ', df.dtypes)

    # null = df.isnull().sum(axis=1)
    #
    # print(null)

    # df2=df.drop(['director'],axis=1)
    print(df.columns)
    df.drop(labels='director', axis=1)

CSV文件列名

show_id, type, title, director, cast, country, date_added, release_year, rating, duration, listed_in, description

错误信息

KeyError: "['director'] not found in axis"

已尝试的写法

df.drop(labels=['director', 'cast'], axis=1)

# or

df.drop(columns=['director', 'cast'])

解决方案

问题出在CSV读取的分隔符设置错误:你指定了sep='\t'(制表符分隔),但实际CSV是用逗号分隔的。这导致Pandas把整行内容当成了单一列,自然找不到director、cast这些列名。

修正步骤:

  1. 修正CSV读取方式:去掉sep='\t'参数(Pandas会自动识别逗号分隔的CSV),或者显式指定sep=','
  2. 正确删除列:drop方法默认不会修改原DataFrame,要么将结果赋值给新变量,要么添加inplace=True参数直接修改原数据

修正后的代码示例

import pandas as pd

if __name__ == '__main__':
    # 正确读取逗号分隔的CSV
    df = pd.read_csv(r'titles.csv')
    
    # 方式1:将处理后的数据赋值给新变量
    df_cleaned = df.drop(columns=['director', 'cast'])
    print(df_cleaned.columns)
    
    # 方式2:直接修改原DataFrame(无需赋值)
    # df.drop(columns=['director', 'cast'], inplace=True)
    # print(df.columns)

内容的提问来源于stack exchange,提问作者vorbote

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.16 11:50:20