我需要使用Python删除所有从col2到col6都为FALSE的行。我认为“df = df[df.any(axis=1)]”也会考虑列“id”和“col1”。我需要排除列“id”和“col1”。
感谢你的帮助。
我尝试对从csv中提取的数据进行循环迭代,如下所示
import pandas as pd
columns_to_keep = ['col1']
for col in df.columns[1:]:
if df[col].any():
columns_to_keep.append(col)
filtered_df = df[columns_to_keep]
但我得到的错误列表索引必须是整数或切片,而不是str
3条答案
按热度按时间mnemlml81#
使用此命令将给予输出:
输出:
slhcrj9b2#
使用
DataFrame.loc
和:
选择所有行和条件-链测试至少一个True
并添加incluse列:更一般的解决方案是只测试带有
DataFrame.select_dtypes
的boolean列,并通过Series.reindex
附加非boolens:如果要删除行:
li9yvcax3#
若要删除DataFrame中列col2到col6中所有值均为False的行,同时排除id和col1列,可以使用loc访问器指定列范围,并使用将axis参数设置为1的any方法。下面是一个例子: