为了账号安全,请及时绑定邮箱和手机立即绑定

如何用一行代码删除python中的多列?

如何用一行代码删除python中的多列?

慕姐8265434 2021-12-26 15:09:16
我正在尝试删除数据框中的以下列:1,2,101:117,121:124,126。到目前为止,我发现删除列的两种方法是:df.drop(df.columns[2:6],axis=1)df.drop(df.columns[[0,3,5]],axis=1) 但是如果我尝试df.drop(df.columns[1,2,101:117,121:124],axis=1)我收到“索引过多”错误我也试过这个a=df.drop(df.columns[[1,2]],axis=1)b=a.drop(a.columns[99:115],axis=1)c=b.drop(b.columns[102:105],axis=1)d=c.drop(c.columns[103],axis=1)但这并不是出于某种原因删除我想要的列。
查看完整描述

3 回答

?
偶然的你

TA贡献1841条经验 获得超3个赞

使用np.r_到切片:


import numpy as np


df.drop(columns=df.columns[np.r_[1, 2, 101:117, 121:124, 126]])

import pandas pd

df = pd.DataFrame(np.random.randint(1, 10, (2, 130)))

df.drop(columns=df.columns[np.r_[1, 2, 101:117, 121:124, 126]])

#     0    3    4    5    6 ... 120 124 125  127

#0    6    1    3    7    2 ...   8   7   2    6

#1    1    9    2    5    3 ...   7   3   9    4


查看完整回答
反对 回复 2021-12-26
?
海绵宝宝撒

TA贡献1809条经验 获得超8个赞

这应该有效:

df.drop(df.columns[[indexes_of_columns_you_want_to_delete]],axis=1,inplace=True)


查看完整回答
反对 回复 2021-12-26
?
慕姐4208626

TA贡献1852条经验 获得超7个赞

请试试这个:


import numpy as np

import pandas as pd

input_df.drop(input_df.columns[[np.r_[0,2:4]]],axis=1, inplace = True)


查看完整回答
反对 回复 2021-12-26
  • 3 回答
  • 0 关注
  • 388 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号