如何覆盖原DataFrame df1保留指定列,不生成独立df2
实现方法
有两种常用的原地修改方案,都可以直接修改原df1,不需要额外生成独立的df2:
- 方案1:明确指定要删除的列
使用drop方法的columns参数传入要删除的列名,搭配inplace=True实现原地修改:
df1.drop(columns=['age', 'subject', 'date of joining'], inplace=True)
- 方案2:自动匹配保留列(更通用,无需罗列所有待删除列)
如果不想手动列所有要删除的列,可以自动过滤出需要保留的列之外的所有列再删除:
df1.drop(df1.columns.difference(['name', 'branch']), axis=1, inplace=True)
注意:如果直接使用
df1 = df1[['name', 'branch']]的写法,本质是生成了一个新的DataFrame对象赋值给df1变量,如果原df1存在其他外部引用不会同步更新,需要真正原地修改请优先使用带inplace=True的方案。
内容的提问来源于stack exchange,提问作者usmansharif shaik
相关产品推荐
相关产品推荐

