从熊猫数据框中删除大量列

Posted

技术标签:

【中文标题】从熊猫数据框中删除大量列【英文标题】:Dropping lots of columns from a pandas dataframe 【发布时间】:2020-05-28 12:12:40 【问题描述】:

假设我有一个包含 100 多列的数据框,我将如何删除最后 15 列?

有没有比键入:df.drop([column1,column2,...,column15]) 更好的方法?我必须在这里输入所有列的名称。有没有办法可以切片,比如[column1 : column15]

【问题讨论】:

这是什么?您是如何获得 100 多列的? 这能回答你的问题吗? Selecting pandas column by location 【参考方案1】:

如果您知道要删除的列的索引,则可以使用

df.drop(df.columns[15:30], axis=1)

正如@fillbranden 在评论中提到的,我应该向您展示如何删除最后 15 列:

df.drop(df.columns[-15:], axis=1)

【讨论】:

您有一组额外的括号:df.drop(df.columns[15:30], axis=1) 是正确的语法。此外,对于 last 15 列(根据 OP 的要求),您可以使用 df.columns[-15:] 感谢您的收获。我应该多加注意 感谢修复!你的答案是最好的,只需要一个小修复。【参考方案2】:

用组成的数据框试试这个代码:

df = pd.DataFrame(np.random.randint(0,100, size= (100, 15)), columns=list('ABCDEFGHIJKLMNO'))

在这种情况下,我使用以下方法删除了最后 5 列:

df.drop(df.iloc[:,10:15], inplace=True, axis=1)
print(df)

只要您可以轻松使用列索引,这应该可以满足您的目的。

【讨论】:

【参考方案3】:

如果您不知道具体的列索引,请删除最后 X 列:

cols = list(range(-1, -10, -1)) # Drop last 10 columns

df.drop(df.columns[cols], axis = 1)

【讨论】:

【参考方案4】:

从数据框中删除最后 15 列:

df = df.iloc[:, :-15]

【讨论】:

以上是关于从熊猫数据框中删除大量列的主要内容,如果未能解决你的问题,请参考以下文章

如何从包含前两列组合的熊猫数据框中删除行

如何从包含特定列中特定字符串的熊猫数据框中删除行? [复制]

关于从数据框中删除数据的熊猫相关问题

使用百分位数从熊猫数据框中删除异常值

从熊猫数据框中的单词中删除子字符串

从熊猫数据框中的日期时间中删除时间戳