平均一列中每个唯一值的最后几个条目以生成新的df

黑德普

df.head()的数据框看起来像这样。我正在测量7到9 Hz频率之间的数据,并具有大约100个唯一值Psnr如果我想创建一个新数据框,并用一个点表示每个唯一值的最后五分钟的平均值Psnr,那么最好的方法是什么?

Datum_Zeit  Psnr
2018-10-04 14:43:11.410 2
2018-10-04 14:43:11.600 2
2018-10-04 14:43:11.790 2
2018-10-04 14:43:11.970 2
2018-10-04 14:43:12.160 2

这样做的一种可能方法是创建子数据帧,再次对其进行过滤和合并,如下所示。但是,我相信必须有一个更简单的解决方案

dfs = {k: df[df['Psnr'] == k] for k in df['Psnr'].unique()}
耶斯列尔

我相信您首先需要为每个组过滤最后5分钟的数据,然后再按mean进行汇总Psnr

print (df)
                Datum_Zeit  Psnr  Speed  Torque
0  2018-10-04 14:38:11.410     2      8       6
1  2018-10-04 14:39:11.600     2      7       0
2  2018-10-04 14:40:11.790     2      1       1
3  2018-10-04 14:41:11.970     2      9       3
4  2018-10-04 14:43:12.160     2      5       1
5  2018-10-04 14:39:11.600     3      7       0
6  2018-10-04 14:40:11.790     3      1       1
7  2018-10-04 14:44:11.970     3      9       3
8  2018-10-04 14:45:12.160     3      5       1

df['Datum_Zeit'] = pd.to_datetime(df['Datum_Zeit'])

s = df.groupby('Psnr')['Datum_Zeit'].transform('max')
df = df[df['Datum_Zeit'].between(s - pd.Timedelta(300, 's'), s)]
print (df)
               Datum_Zeit  Psnr  Speed  Torque
1 2018-10-04 14:39:11.600     2      7       0
2 2018-10-04 14:40:11.790     2      1       1
3 2018-10-04 14:41:11.970     2      9       3
4 2018-10-04 14:43:12.160     2      5       1
7 2018-10-04 14:44:11.970     3      9       3
8 2018-10-04 14:45:12.160     3      5       1

如果需要所有列的均值,则不包含datetime

df = df.groupby('Psnr').mean()
print (df)
      Speed  Torque
Psnr               
2       5.5    1.25
3       7.0    2.00

如果仅需要datetime列的列:

df['dates']= df['Datum_Zeit'].astype(np.int64)
df1 = pd.to_datetime(df.groupby('Psnr')['dates'].mean()).reset_index()
print (df1)
   Psnr                         dates
0     2 2018-10-04 14:40:56.880000000
1     3 2018-10-04 14:44:42.064999936

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

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

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

SQL:为另一列的唯一条目平均一列的值

在python中查找价格动能的有效方法:平均一列的最后n个条目

为列中的每个唯一值生成唯一列

MySQL为另一列中的每个唯一值选择最新条目

对唯一列值进行分组以获取 Pandas 数据框列中每个唯一值的平均值

一列中的值的平均值,另一列中的唯一值

PostgreSQL:使用每天每个名称的最后一个条目来计数一列中某个值出现的次数

在MySQL中的每个唯一列中选择所有新输入的值

熊猫,对于一列中的每个唯一值,在另一列中获得唯一值

每个主键的唯一列值

Pandas Dataframe 根据一列中的唯一值复制具有平均值的行,以便每个唯一值具有相同的行数

另一列的每个唯一值的30个最新数据点的平均值

将一列的每个唯一值与其他列R中的每个唯一值求和

平均数据框中的几个值以填充同一列中的NaN值

您可以平均一列值而忽略另一列的重复项吗?

熊猫:从另一列中的每个唯一值中获取一列的最大值

几个df中的一列(第2列)的最大值

Oracle-为每个唯一列值生成唯一行,并将行转换为列

使用dplyr计算唯一列条目的值

SQL查询以获取另一列中每个唯一值的最大值

Python Pandas 透视:如何在第一列中分组并为第二列中的每个唯一值创建一个新列

根据它们的值选择一列的几个范围并将第二列的平均值插入到Matlab中的新矩阵中

旋转/数据透视表以在分组列中为每个唯一值制作一列

熊猫使用与另一列对应的唯一值的所有条目创建新列

检查列表最后几个位置中的每个元素是否在另一个列表中

在列表中存储(df)每一列的唯一值

取一列的唯一值,并将每个值添加到 data.table 中与 `by` 同一行的唯一列中

在 R 中,指示另一列的每个 ID 是否具有多个唯一值

获取每个不同列值的最后一个条目