【问题标题】:Delete rows of pandas df under variance threshold删除方差阈值下的熊猫df行
【发布时间】:2019-10-30 15:21:58
【问题描述】:

我的 df 如下所示(我是通过 pivot_table 得到的):

ID_column Test1 Test2 Test3 Test4
ID1       0     1     3     0
ID2       4     2     0     0
ID3       3     1     3     5

我想在计算的方差时删除所有低于方差阈值x的。我在任何地方都找不到,只有对列执行此操作的解决方案。

【问题讨论】:

  • 使用 df.var(axis=1) 计算行而不是列的方差

标签: python pandas variance


【解决方案1】:

您可以使用以下代码来执行此操作:

threshold = 1 # define variance threshold    
row_vars = df.var(axis=1) # calculate variance over rows.

rows_to_drop = df[row_vars>threshold].index

# drop the rows in place
df.drop(rows_to_drop, axis=0, inplace=True)

总结:

以逐行方式计算方差,获取方差超过此阈值的行的索引,然后将它们放置到位。

【讨论】:

  • 如果我这样做,我会得到 ValueError:negative dimensions are not allowed
  • 错误指的是哪一行?它适用于我的示例数据。
  • 啊抱歉,我的错误,我没有看到 inplace=True 并将 df.drop() 分配给一个变量。
猜你喜欢
  • 1970-01-01
  • 2019-05-06
  • 2020-02-25
  • 2021-10-31
  • 2015-11-07
  • 1970-01-01
  • 2018-12-20
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多