如何通过列中平均值的差异来过滤数据集?
How to filter dataset by difference of mean values in columns?
我有一个数据框:
id1 vals1 id2 vals2
a1 [5,6] b1 [8]
c1 [5,3] e1 [4,5,6]
我想计算 vals1 和 vals2 的平均值,如果这些平均值之间的差值绝对值大于 1,则过滤我的数据框,以删除该行。怎么做?
所以期望的结果是:
id1 vals1 id2 vals2
c1 [5,3] e1 [4,5,6]
你可以试试这样:
from statistics import mean
res = df.loc[df.apply(lambda x: mean(x.vals1) - mean(x.vals2),1).abs()<=1]
>>> res
'''
id1 vals1 id2 vals2
1 c1 [5, 3] e1 [4, 5, 6]
我有一个数据框:
id1 vals1 id2 vals2
a1 [5,6] b1 [8]
c1 [5,3] e1 [4,5,6]
我想计算 vals1 和 vals2 的平均值,如果这些平均值之间的差值绝对值大于 1,则过滤我的数据框,以删除该行。怎么做?
所以期望的结果是:
id1 vals1 id2 vals2
c1 [5,3] e1 [4,5,6]
你可以试试这样:
from statistics import mean
res = df.loc[df.apply(lambda x: mean(x.vals1) - mean(x.vals2),1).abs()<=1]
>>> res
'''
id1 vals1 id2 vals2
1 c1 [5, 3] e1 [4, 5, 6]