【问题标题】:Is there a way to calculate std and mean over two parameters?有没有办法计算两个参数的标准差和平均值?
【发布时间】:2020-12-01 05:23:54
【问题描述】:

我使用 groupby 来生成以下 pd.DataFrame:

                       Timestemp  Altitude [m]  Sequence ID  Horizontal Wind Speed [m/s]  ...  Radial Wind Speed [m/s]  CNR [dB]  U-Component of Wind Speed  V-Component of Wind Speed 
0    2019-07-29 00:00:40.901           100       617375                       7.2750  ...                   -0.006   -15.706                   7.241811                  -0.694118
1    2019-07-29 00:00:40.901           150       617375                       8.0700  ...                    0.252   -14.960                   8.068156                  -0.172526
2    2019-07-29 00:00:40.901           200       617375                       9.6750  ...                    0.572   -13.872                   9.672698                  -0.211059
3    2019-07-29 00:00:40.901           250       617375                       9.7975  ...                    0.424   -12.584                   9.786624                   0.461525
4    2019-07-29 00:00:40.901           300       617375                       9.0325  ...                    0.054   -10.998                   9.029804                  -0.220684
...                      ...           ...          ...                          ...  ...                      ...       ...                        ...                        ...
1612 2019-07-29 00:16:59.713          1500       617425                          NaN  ...                      NaN       NaN                        NaN                        NaN
1613 2019-07-29 00:16:59.713          1550       617425                          NaN  ...                      NaN       NaN                        NaN                        NaN
1614 2019-07-29 00:16:59.713          1600       617425                          NaN  ...                      NaN       NaN                        NaN                        NaN
1615 2019-07-29 00:16:59.713          1650       617425                          NaN  ...                      NaN       NaN                        NaN                        NaN
1616 2019-07-29 00:16:59.713          1700       617425                          NaN  ...                      NaN       NaN                        NaN                        NaN

但现在有点棘手。我想在每个高度上每 5 分钟计算一次平均值和标准差。 所以海拔超过 5 分钟的 Timestemp。

我该如何解决?有人有想法吗? 谢谢

【问题讨论】:

    标签: python pandas pandas-groupby mean


    【解决方案1】:

    您可以使用 resample 将数据帧按 5 分钟分组。首先,您需要将时间戳变量作为索引,然后应用 resample 函数。 “T”代表分钟。你可以在这里找到所有的代码列表:pandas resample documentation

    df.set_index('Timestamp', inplace=True)
    df.resample("5T").mean()
    df.resample("5T").std()
    
    

    编辑:如果您还想按“高度”进行分组。请记住,您仍然需要在索引上包含时间戳。

    df.groupby([pd.Grouper(freq="5Min"), "Altitude"]).mean()
    
    df.groupby([pd.Grouper(freq="5Min"), "Altitude"]).std()
    

    【讨论】:

    • 嗨,这是最简单的方法。我已经试过了......现在的问题是,海拔也是平均值......这是错误的。
    • 我编辑了答案,以便您现在可以按两列分组
    • 嗨,太好了...所以我可以像 groupby 函数一样使用 Grouper?谢谢:)
    【解决方案2】:

    首先,您需要将时间列设置为索引。然后可以使用采样频率计算均值和标准差

    df = df.set_index(pd.DatetimeIndex(df['Timestemp']))
    
    dfmean = df.groupby(pd.Grouper(freq='5T')).mean()  # 5min
    dfstd = df.groupby(pd.Grouper(freq='5T')).std()
    

    【讨论】:

    • 这里也一样。现在海拔也处于平均水平。 A 希望每个高度的平均值为 5 分钟...所以所有 100m、200m... 高度的平均值超过 5 分钟
    猜你喜欢
    • 2014-03-21
    • 1970-01-01
    • 2012-04-20
    • 2018-07-20
    • 2014-09-28
    • 1970-01-01
    • 2017-01-18
    相关资源
    最近更新 更多