我想查看数据框的每个单元格,以检查每个值是否低于列均值的50%。我尝试使用以下代码,但是它效率极低并且卡住了。
for col, value in data.items():
mean = data[col].mean()
for i in value:
for day in data.index:
if i < 0.5 * mean:
data.loc[day, col] = 0
我如何简化或做得更好?
数据帧如下:
Log 1233.de asdad.w.1 fff.op
Tagname
01/06/2008 00:00 0 343.04 73.75 79.03
02/06/2008 00:00 0 332.31 73.71 79.21
03/06/2008 00:00 0 339.25 75.77 80.11
04/06/2008 00:00 0 353.25 76.47 79.75
05/06/2008 00:00 0 353.44 77.35 82.48
上载为:
dat = pd.read_csv('data.csv', header = 0, index_col = "Tagname")
data = pd.DataFrame(dat)
想法是将所有列的均值以mean
,乘以0.5
和DataFrame.lt
将以设置0
值进行比较DataFrame.mask
:
data = data.mask(data.lt(data.mean() * 0.5), 0)
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句