如何移除DataFrame中元素总和低于1.0的列?现有代码报错求助
解决DataFrame删除总和低于1.0的列的问题
你的代码问题出在(df.sum() < 1.0).any(axis=0)部分:
df.sum()会返回一个存储每列总和的Series,df.sum() < 1.0会生成对应每列是否满足「总和低于1.0」的布尔Series。.any(axis=0)会把这个布尔Series压缩成单一布尔值(只要有一列满足条件就返回True),用单一值作为列索引自然会触发错误。
正确实现代码
直接用布尔Series作为列筛选器,保留总和≥1.0的列即可:
df = df.loc[:, df.sum() >= 1.0]
如果想明确写出删除条件的取反逻辑,也可以这样写:
df = df.loc[:, ~(df.sum() < 1.0)]
上述代码都会自动删除所有总和低于1.0的列,你可以先通过print(df.sum())查看各列总和,验证筛选结果是否符合预期。
内容的提问来源于stack exchange,提问作者Qubix
相关产品推荐
相关产品推荐

