我想查看我的数据的每个单元格,以检查每个值是否低于列平均值的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我怎样才能简化或做得更好?
dataframe如下所示:
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)发布于 2020-05-29 12:12:33
Idea是用mean比较所有列的平均值,用0.5比较多列,用DataFrame.mask比较DataFrame.lt和set 0值。
data = data.mask(data.lt(data.mean() * 0.5), 0)https://stackoverflow.com/questions/62085631
复制相似问题