python输出间隔_在Python中按几个间隔平均列值

您可以使用dataframe的apply方法完成此操作,然后通过布尔值对符合条件的行(和关联值)进行采样,如depth + 1.0或depth + 2.0。df['avg1_1'] = df.apply(lambda x: (df[df['Depth'] <= x['Depth'] + 1.0]['Value1'].values.sum() /

len(df[df['Depth'] <= x['Depth'] + 1.0]['Value1'].values)),

axis=1)

df['avg2_1'] = df.apply(lambda x: (df[df['Depth'] <= x['Depth'] + 1.0]['Value2'].values.sum() /

len(df[df['Depth'] <= x['Depth'] + 1.0]['Value2'].values)),

axis=1)

df['avg1_2'] = df.apply(lambda x: (df[df['Depth'] <= x['Depth'] + 2.0]['Value1'].values.sum() /

len(df[df['Depth'] <= x['Depth'] + 2.0]['Value1'].values)),

axis=1)

df['avg2_2'] = df.apply(lambda x: (df[df['Depth'] <= x['Depth'] + 2.0]['Value2'].values.sum() /

len(df[df['Depth'] <= x['Depth'] + 2.0]['Value2'].values)),

axis=1)

这将返回:Depth Value1 Value2 newval avg1_1 avg2_1 avg1_2 avg2_2

0 1.0 44 55 66.0 80.750000 60.250000 68.714286 53.857143

1 1.0 46 65 241.0 80.750000 60.250000 68.714286 53.857143

2 1.5 221 76 32.0 69.000000 59.000000 71.375000 48.625000

3 2.0 12 45 67.0 68.714286 53.857143 78.200000 44.100000

4 2.5 47 55 64.0 71.375000 48.625000 78.200000 44.100000

5 2.5 44 58 87.0 71.375000 48.625000 78.200000 44.100000

6 3.0 67 23 110.0 78.200000 44.100000 81.272727 42.090909

7 3.5 90 12 120.0 78.200000 44.100000 84.500000 40.750000

8 4.0 100 32 131.0 81.272727 42.090909 87.384615 40.384615

9 4.0 111 20 132.0 81.272727 42.090909 87.384615 40.384615

10 5.0 112 22 140.0 87.384615 40.384615 87.384615 40.384615

11 5.5 120 26 142.0 87.384615 40.384615 87.384615 40.384615

12 6.0 122 36 NaN 87.384615 40.384615 87.384615 40.384615

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值