You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python3如何基于另一个DataFrame的条件删除DataFrame的指定列

修正方案

错误原因

  • 你调用df.drop()时没有指定axis=1,该方法默认删除行(axis=0),无法实现删除列的需求
  • df2.any(axis=0)返回的是「列名:布尔值」格式的Series,df.drop()需要接收的是待删除的列名列表,直接传布尔Series会识别错误

可运行的正确代码

import pandas as pd

df1 = pd.DataFrame({'col1': [11, 11, 11], 'col2': [22, 22, 22]}, index=['sec1', 'sec2', 'sec3'])
df2 = pd.DataFrame({'col1': [False, False, False], 'col2': [False, True, False]}, index=['sec1', 'sec2', 'sec3'])

# 筛选df2中包含至少一个True的列名
cols_to_remove = df2.columns[df2.any(axis=0)]
# 删除df1对应的列
df1.drop(cols_to_remove, axis=1, inplace=True)

print(df1)

输出结果

col1
sec1    11
sec2    11
sec3    11

内容的提问来源于stack exchange,提问作者aura

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.07 06:48:00