【发布时间】:2021-06-23 12:01:48
【问题描述】:
所以这是一个常见问题,但我找不到适合这种特殊情况的答案。
所以我有一个Dataframe,其中有类型的列,例如“戏剧,西部”和一个热门编码版本的类型,所以对于戏剧和西部,两个栏目中都有一个 1,但是在哪里它只是西方类型,其 1 用于该列 0 用于戏剧。
我想要一个过滤后的数据框,其中包含只有西方而没有其他类型的行。我试图对模型进行过度采样,因为它是一个小类,但我不想增加其他类型的数量作为副产品
有多个行,所以我不能使用索引,并且有多个流派,所以我不能使用像 df[(df['Western']==1) & (df['Drama']==0) 这样的条件,而不必考虑 24 个流派。
Index | Genre | Drama | Western | Action | genre 4 |
0 Drama, Western 1 1 0 0
1 Western 0 1 0 0
3 Action, Western 0 1 1 0
【问题讨论】:
-
条件是什么,能不能加上预期的输出。
-
@Abhi_J 我想要一个过滤的数据框,其中包含只有西方而没有其他类型的行。我试图对模型进行过度采样,因为它是一个小类,但我不想增加其他类型的数量作为副产品。
-
onehot[onehot.Western & onehot.sum(1) == 1]
标签: python pandas dataframe conditional-statements pandas-loc