我知道去掉一列要用df。Drop ('column name', axis=1)。是否有一种方法可以使用数字索引而不是列名来删除列?
当前回答
您可以简单地为df提供columns参数。Drop命令,所以在这种情况下你不需要指定轴,像这样
columns_list = [1, 2, 4] # index numbers of columns you want to delete
df = df.drop(columns=df.columns[columns_list])
参考参见这里的columns参数:https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.DataFrame.drop.html?highlight=drop#pandas.DataFrame.drop
其他回答
您需要根据列在数据框架中的位置来标识它们。例如,如果你想删除(del)列2、3和5,它将是,
df.drop(df.columns[[2,3,5]], axis = 1)
您可以使用下面的行删除前两列(或任何您不需要的列):
df.drop([df.columns[0], df.columns[1]], axis=1)
参考
您可以简单地为df提供columns参数。Drop命令,所以在这种情况下你不需要指定轴,像这样
columns_list = [1, 2, 4] # index numbers of columns you want to delete
df = df.drop(columns=df.columns[columns_list])
参考参见这里的columns参数:https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.DataFrame.drop.html?highlight=drop#pandas.DataFrame.drop
由于可以有多个具有相同名称的列,我们应该首先重命名列。 下面是解决方案的代码。
df.columns=list(range(0,len(df.columns)))
df.drop(columns=[1,2])#drop second and third columns
获得你想要的列的好方法(没有问题重复的名称)。
例如,您希望删除的列索引包含在类似列表的变量中
unnecessary_cols = [1, 4, 5, 6]
then
import numpy as np
df.iloc[:, np.setdiff1d(np.arange(len(df.columns)), unnecessary_cols)]
推荐文章
- 证书验证失败:无法获得本地颁发者证书
- 当使用pip3安装包时,“Python中的ssl模块不可用”
- 无法切换Python与pyenv
- Python if not == vs if !=
- 确定每列中NA值的个数
- 如何从scikit-learn决策树中提取决策规则?
- 为什么在Mac OS X v10.9 (Mavericks)的终端中apt-get功能不起作用?
- 将旋转的xtick标签与各自的xtick对齐
- 为什么元组可以包含可变项?
- 如何合并字典的字典?
- 如何创建类属性?
- 如何结合多个条件子集数据帧使用“或”?
- 不区分大小写的“in”
- 在Python中获取迭代器中的元素个数
- 解析日期字符串并更改格式