首页 > 解决方案 > 如何正确删除数据框(熊猫)中的列?

问题描述

我无法csv使用 pandas 删除列。我尝试使用不同的轴、del 函数以多种方式删除它,但它不起作用。有人知道为什么吗?

这是我的 pandas.head()

年龄;“工作”;“婚姻”;“教育”;“默认”;“余额”;“住房”;“贷款”;“联系人”;“日”;“月”;“持续时间”;“活动”; “pdays”;“以前的”;“poutcome”;“y”
0 58;“管理”;“已婚”;“大专”;“无”;2143... 
1 44;“技术员”;“单身”;“中学”;“无”;29;“...
2 33 ;“企业家”;“已婚”;“中学”;“没有”;2...
3 47;“蓝领”;“已婚”;“未知”;“没有”;1506...
4 33;”未知”;“单个”;“未知”;“无”;1;“无”;“n...

这是我的代码:

import pandas  
df = pd.read_csv('bank-full.csv')
print(df.head())
df = df.drop(['day', 'poutcome'], axis=1)

这是错误:

回溯(最近一次通话最后):
  文件“/home/administrator/PycharmProjects/BankMarketinData/main.py”,第 21 行,在
    主要的()
  文件“/home/administrator/PycharmProjects/BankMarketinData/main.py”,第 19 行,在 main
    df = df.drop(['day', 'poutcome'], axis=1)
  文件“/home/administrator/anaconda3/lib/python3.6/site-packages/pandas/core/frame.py”,第 3697 行,放入
    错误=错误)
  文件“/home/administrator/anaconda3/lib/python3.6/site-packages/pandas/core/generic.py”,第 3111 行,在 drop
    obj = obj._drop_axis(标签,轴,级别=级别,错误=错误)
  _drop_axis 中的文件“/home/administrator/anaconda3/lib/python3.6/site-packages/pandas/core/generic.py”,第 3143 行
    new_axis = axis.drop(标签,错误=错误)
  文件“/home/administrator/anaconda3/lib/python3.6/site-packages/pandas/core/indexes/base.py”,第 4404 行,放入
    '{} 在轴中找不到'.format(labels[mask]))
KeyError:“['day''poutcome'] 在轴中找不到”

标签: pythonpandascsvdelimiter

解决方案


所以这是一个非常简单的问题。首先,我建议您delimiter在处理tabular数据时使用。现在让我们专注于您的问题,因此您正在阅读dataframe这样的内容:

import pandas as pd  
df = pd.read_csv('bank-full.csv')
df = df.drop(['day', 'poutcome'], axis=1)

现在你的column名字包含""在其中。因此,您的列的名称是"day" &"poutcome"而不是day& poutcome。请记住,这些double quotes ""是您的列名的一部分。所以你应该写这样的东西来删除这些列:

df = df.drop(['"day"', '"poutcome"'], axis=1)

我希望这可以帮助你。如果您还有其他问题,请告诉我


推荐阅读