【发布时间】:2021-11-09 02:38:37
【问题描述】:
假设下一个df:
d={'month': ['01/01/2020', '01/02/2020', '01/03/2020', '01/01/2020', '01/02/2020', '01/03/2020'],
'country': ['Japan', 'Japan', 'Japan', 'Poland', 'Poland', 'Poland'],
'level':['A01', 'A01', 'A01', 'A00','A00', 'A00'],
'job title':['Insights Manager', 'Insights Manager', 'Insights Manager', 'Sales Director', 'Sales Director', 'Sales Director'],
'number':[0, 0.001, 0, 0, 0, 0],
'age':[24, 22, 45, 38, 60, 32]}
df=pd.DataFrame(d)
当尝试获取所有列的方差时,会出现下一个结果:
import pandas as pd
df.agg("var")
结果:
number 1.666667e-07
age 2.025667e+02
dtype: float64
这个想法是删除处于某个等级的列,例如,如果列方差则将其删除
在0 和0.0001 之间的排名,(即:删除number 列,因为它的方差在此排名内)。
当尝试这样做时:
df= df.loc[:, 0 < df.std() < .0001]
出现下一个错误:
ValueError:Series 的真值不明确。使用 a.empty、a.bool()、a.item()、a.any() 或 a.all()。
是否可以删除方差在容差范围内的 pandas df 列?
【问题讨论】:
标签: python pandas dataframe machine-learning