如何删除 pandas 中数据透视表 table 中的一行?

How do you remove a row in a pivot table in pandas?

我使用此代码在 pandas 中创建了一个枢轴:

table = pd.pivot_table(df, values='Value (millions)', index=['TierA', 'TierB'], aggfunc=['count',np.sum])

这给了我支点:

                      count               sum
                 Value (millions)   Value (millions)
TierA   TierB   
1        1             6                    400
2        0             0                     0
2        2             1                    300

在主元 table 中,如何删除 [2,0,0,0] 行?我试过正常的:

table = table.drop(['TierA','TierB','count','sum'], axis =0)

它没有用,这个也没有: table = table.drop(['TierA','TierB','Value (millions)'], axis =0)

我想做的事情可行吗?如果是这样,我该怎么做?

谢谢

您的 pivot_table 有一个 MultiIndex,您必须传递一个元组才能删除该行。试试

table = table.drop((2, 0), axis = 0)

这取决于您要删除该行的原因。

如果是因为它的index是(2,0),那就写成table.drop(index = (2,0))或者table.drop(index = 0, level = 1).

如果是因为有些值是0,那就写成table.loc[~(table.count == 0)]或者table.loc[~(table.sum == 0)]

我发现在布尔条件前使用 ~ 而不是删除行,.loc 要删除的东西的倒数通常更方便。