【发布时间】:2021-04-01 22:18:25
【问题描述】:
我有以下数据框df,它有一堆观察结果,它们有一堆可以属于的类别以及它们是否获胜。我对一些行进行了子集化,因此实际上有更多类别。我想创建一个新的数据框,在其中删除与任何观察不对应的任何类别列(任何前缀为 cat_ 的列)(即整个类别列为 0)。
id cat_food cat_fitness cat_retail cat_grocery win
1 1 0 1 0 1
2 1 0 0 0 0
3 0 1 0 0 1
4 1 0 0 0 1
4 1 0 0 0 0
5 1 0 0 0 1
6 0 1 1 0 1
6 0 1 1 0 0
我预期的数据框将删除 cat_grocery 列,因为没有任何观察属于该类别
id cat_food cat_fitness cat_retail win
1 1 0 1 1
2 1 0 0 0
3 0 1 0 1
4 1 0 0 1
4 1 0 0 0
5 1 0 0 1
6 0 1 1 1
6 0 1 1 0
【问题讨论】:
-
df.loc[:, df.max()>0]或df.loc[:, df.any()]? -
我只想删除带有
cat_前缀且全为零的列,而不是任何列