如何基于过滤计算数据框列中的值

girl_of_data

鉴于此数据框:

DriverId    time                         SPEED
0           2021-04-16 21:40:00+00:00   58.500000
            2021-04-16 21:41:00+00:00   32.850000
            2021-04-16 21:42:00+00:00   89.633333
            2021-04-16 21:43:00+00:00   88.166667
            2021-04-16 21:44:00+00:00   118.016667
... ... ...
88          2021-04-27 07:30:00+00:00   79.566667
            2021-04-27 07:31:00+00:00   59.383333
            2021-04-27 07:32:00+00:00   89.133333
            2021-04-27 07:33:00+00:00   59.966667
            2021-04-27 07:34:00+00:00   25.72413

我想添加列来计算每个司机低于 40 公里/小时的速度数,所以我试过这个:

y[y.SPEED<40].count()

它显示了这一点:

    SPEED    4721
    dtype: int64

这不是我想要的,expexted 结果必须是这样的:

  DriverId        SPEED         count 
      0            15.20            2
                   32.850000 
                   89.633333
                  88.166667
                  118.016667
... ... ...
88              79.566667          1
                59.383333
                89.133333
                59.966667
                25.72413

我的数据框是一个系列,我将其转换为数据框

 y.info()
    <class 'pandas.core.frame.DataFrame'>
MultiIndex: 15082 entries, (0, Timestamp('2021-04-16 21:40:00+0000', tz='UTC')) to (88, Timestamp('2021-04-27 07:34:00+0000', tz='UTC'))
Data columns (total 1 columns):
 #   Column  Non-Null Count  Dtype  
---  ------  --------------  -----  
 0   SPEED   15082 non-null  float64
dtypes: float64(1)
memory usage: 922.5 KB
林山可拉依
df = pd.DataFrame([['0','2021-04-16 21:40:00+00:00',58.500000],
    ['0','2021-04-16 21:41:00+00:00', 32.850000],#FIRST ONE
    ['0','2021-04-16 21:42:00+00:00', 15.633333],#SECOND ONE
    ['0','2021-04-16 21:43:00+00:00', 88.166667],
    ['0','2021-04-16 21:44:00+00:00',118.016667],
    ['88','[2021-04-27 07:30:00+00:00',79.566667],
    ['88','2021-04-27 07:31:00+00:00',59.383333],
    ['88','2021-04-27 07:32:00+00:00',89.133333],
    ['88','2021-04-27 07:33:00+00:00',59.966667],
    ['88','2021-04-27 07:34:00+00:00',25.72413] # THIRD ONE
  ],columns=['driver_id','time','speed'])
df = df.set_index("driver_id")
counts = df[df['speed'] < 40].groupby(["driver_id",],as_index=False).agg(
    count_col=pd.NamedAgg(column="speed", aggfunc="count")
)
merged_Frame = pd.merge(df, counts, on = 'driver_id', how='inner')

输出

driver_id   time                   speed        count_col
0   0   2021-04-16 21:40:00+00:00   58.500000   2
1   0   2021-04-16 21:41:00+00:00   32.850000   2
2   0   2021-04-16 21:42:00+00:00   15.633333   2
3   0   2021-04-16 21:43:00+00:00   88.166667   2
4   0   2021-04-16 21:44:00+00:00   118.016667  2
5   88  [2021-04-27 07:30:00+00:00  79.566667   1
6   88  2021-04-27 07:31:00+00:00   59.383333   1
7   88  2021-04-27 07:32:00+00:00   89.133333   1
8   88  2021-04-27 07:33:00+00:00   59.966667   1
9   88  2021-04-27 07:34:00+00:00   25.724130   1

参考

  1. pd.NamedAgg
  2. 根据 Pandas 中的常见列值合并两个数据框

编辑

import pandas as pd

df = pd.DataFrame([['0','2021-04-16 21:40:00+00:00',58.500000],
    ['0','2021-04-16 21:41:00+00:00', 32.850000],#FIRST ONE
    ['0','2021-04-16 21:42:00+00:00', 15.633333],#SECOND ONE
    ['0','2021-04-16 21:43:00+00:00', 88.166667],
    ['0','2021-04-16 21:44:00+00:00',118.016667],
    ['88','[2021-04-27 07:30:00+00:00',79.566667],
    ['88','2021-04-27 07:31:00+00:00',59.383333],
    ['88','2021-04-27 07:32:00+00:00',89.133333],
    ['88','2021-04-27 07:33:00+00:00',59.966667],
    ['88','2021-04-27 07:34:00+00:00',25.72413] # THIRD ONE
  ],columns=['driver_id','time','speed'])
df = df.set_index(['driver_id', 'time'])
df['count'] = df[df['speed'] < 40].groupby('driver_id')['speed'].transform('count')

输出 在此处输入图片说明

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何计算数据框列中重复值的频率?

在python中过滤并计算数据框的长度,该数据框包含不同列中的值

拆分并计算数据框列中的值

Python:如何计算数据框中特定列中的特定值

如何在R中按组计算数据框列中的值?

如何计算数据框中同一列中特定值之后的行数

如何计算数据框中唯一值的总数?

如何计算数据框中列中变量的数量

如何计算数据框列中特定值的出现次数

如何计算数据框中每一列每个不同值的出现?

如何计算数据框列中的出现次数?

如何计算数据框列中的出现次数?

计算数据框中的NaN值

计算数据框中列的组

根据另一个数据框计算数据框中的列值

根据其他列中的值计算数据框中的值总和

如何根据缺失值的百分比计算数据框中列的分位数的不同范围?

计算数据框中列的最大值、平均值和最小值

Python:计算数据框中每个条目具有多个值的列的值

如何基于R中现有列中的循环计算数据帧中的新变量?

如何基于R中的表信息计算数据表或框架中的列

基于列过滤数据框中的数据

熊猫计算数据框中列本身的数据

计算数据框中每个列值的订单百分比

计算数据框列中每个值的百分位数

计算数据框中的特定值并创建具有总和的新列

Scala Spark-使用累加器计算数据框列中的空值

跨列计算数据框中的null / NaN值

计算数据框中特定列中的NaN