从熊猫数据框中删除大量列
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]
【讨论】:
以上是关于从熊猫数据框中删除大量列的主要内容,如果未能解决你的问题,请参考以下文章