我有一个看起来像这样的df:

Name           UnweightedBase    Base    exp1
Name
UnweightedBase           1046    1046    1046
Base                     1046    1046    1046
ppola1                     15   1,28%   1,28%
ppola2                      9   1,21%   1,21%
ppola3                     10   1,07%   1,07%
ppola4                     46   5,32%   5,32%
ppola5                    171  16,91%  16,91%
ppola6                     36   4,01%   4,01%
ppola7                     45   3,88%   3,88%
ppola8                     28   2,63%   2,63%
ppola9                      4   0,29%   0,29%
ppola10                   178  17,76%  17,76%


我想基于索引标签列表构建2个单独的子dfs。 1个包含标签,1个不包含标签

这是我要检查的清单:

fixedlist = ["ppola8", "ppola9", "ppola10"]


我尝试创建这些子dfs:

1) included = df_raw.loc[exclude_list]
2) excluded = df_raw.loc[~exclude_list]


第一个“包括”的df工作,但第二个没有,我得到以下错误:

TypeError: bad operand type for unary ~: 'list'


我该如何解决?

最佳答案

您无法执行那样的尝试,因此会出现错误,因为一元运算符无法在列表上使用。

您可以通过做来实现自己想要的

excluded = df_raw[~df_raw.index.isin(exclude_list)]


内部语句将产生一个布尔索引,可用于索引您的df。

10-07 14:17