Pandas Python:排序df,同时按标签排除给定的行

时间:2014-10-07 10:28:08

标签: python pandas dataframe splice

我的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个seprate子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'

我该如何解决这个问题?

1 个答案:

答案 0 :(得分:1)

由于一元运算符无法在列表中运行,因此无法执行您尝试的操作,因此会出现错误。

您可以通过

实现您想要的目标
excluded = df_raw[~df_raw.index.isin(exclude_list)]

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