如何删除 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
要删除的东西的倒数通常更方便。
我使用此代码在 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
要删除的东西的倒数通常更方便。