如何使用python分组和缩放值?

Linminxiang

我想重新调整列'w'

我已经平均了'w'

aveData_set = Data_Set.groupby(['buildingid', pd.Grouper(key='reporttime',freq='15T')])['w'].mean().reset_index()

aveData_set 结果:

aveData_set 结果

然后我想每个24H重新缩放列'w'

ScaleData_set = aveData_set.groupby(['buildingid', pd.Grouper(key='reporttime',freq='24H')])['w'].apply(lambda x: (x-x.min())/(x.max()-x.min())).reset_index()

但结果很奇怪,一些列消失了。

ScaleData_set 结果:

ScaleData_set 结果

我真的需要你的帮助。非常感谢。

耶斯列

输出是预期的,因为缩放不是聚合值。Series以与 original 相同的大小返回DataFrame

因此可以创建新列:

aveData_set['w_scaled'] = (aveData_set.groupby(['buildingid',
                                                pd.Grouper(key='reporttime',freq='1d')])['w']
                                      .apply(lambda x: (x-x.min())/(x.max()-x.min())))

或重新分配回:

aveData_set['w'] = (aveData_set.groupby(['buildingid',
                                          pd.Grouper(key='reporttime',freq='1d')])['w']
                               .apply(lambda x: (x-x.min())/(x.max()-x.min())))

在这里apply工作transform,请使用类似的 lambda 函数在此处查看更好的解释

aveData_set['w'] = (aveData_set.groupby(['buildingid',
                                          pd.Grouper(key='reporttime',freq='1d')])['w']
                               .transform(lambda x: (x-x.min())/(x.max()-x.min())))

样品

rng = pd.date_range('2017-04-03 18:09:04', periods=10, freq='7T')
Data_Set = pd.DataFrame({'reporttime': rng, 'w': range(10), 'buildingid':[39] * 5 + [40] * 5})
print (Data_Set)
           reporttime  w  buildingid
0 2017-04-03 18:09:04  0          39
1 2017-04-03 18:16:04  1          39
2 2017-04-03 18:23:04  2          39
3 2017-04-03 18:30:04  3          39
4 2017-04-03 18:37:04  4          39
5 2017-04-03 18:44:04  5          40
6 2017-04-03 18:51:04  6          40
7 2017-04-03 18:58:04  7          40
8 2017-04-03 19:05:04  8          40
9 2017-04-03 19:12:04  9          40

aveData_set = (Data_Set.groupby(['buildingid', 
                                 pd.Grouper(key='reporttime',freq='15T')])['w']
                       .mean().reset_index())
print (aveData_set)

   buildingid          reporttime    w
0          39 2017-04-03 18:00:00  0.0
1          39 2017-04-03 18:15:00  1.5
2          39 2017-04-03 18:30:00  3.5
3          40 2017-04-03 18:30:00  5.0
4          40 2017-04-03 18:45:00  6.5
5          40 2017-04-03 19:00:00  8.5

aveData_set['w'] = (aveData_set.groupby(['buildingid',
                                          pd.Grouper(key='reporttime',freq='1d')])['w']
                               .apply(lambda x: (x-x.min())/(x.max()-x.min())))

print (aveData_set)
   buildingid          reporttime         w
0          39 2017-04-03 18:00:00  0.000000
1          39 2017-04-03 18:15:00  0.428571
2          39 2017-04-03 18:30:00  1.000000
3          40 2017-04-03 18:30:00  0.000000
4          40 2017-04-03 18:45:00  0.428571
5          40 2017-04-03 19:00:00  1.000000

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

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

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

熊猫-分组和重新缩放值

如何使用mongo比较值和分组?

使用 Python 对键和值进行分组

如何使用Python在QGIS中选择和缩放图层

如何分组和连接值?

如何在JavaScript中使用mapKeys和按键分组值?

如何使用NULL值分组

如何使用python和pandas对多列进行分组

如何在颤动中使用平移,倾斜和缩放值填充Matrix4?

如何使用nvd3图表沿X轴值和范围选项缩放?

如何在使用css转换(转换或缩放)和带浮点的值时解决“边界边界”错误?

如何使用高度和宽度缩放ReactPlayer

如何使用 Greensock 缩放和旋转图像?

使用dplyr分组时如何计算均值,最小值和最大值?

如何对熊猫进行分组和更新值?

如何组合分组依据和排序值

在python中分组和求和相似值

在python中对值进行分组和除法

如何使用Python对每个ID的首个和最后一个审阅日期列进行分组,并使用python向前填充N / A值?

使用xpath和php分组数据值

如何通过使用python将行值分组来在多列中找到最大值?

如何缩放和权衡给定值的适合度?

如何为滑块缩放值进行撤消和重做?

Python :(熊猫)如何忽略按ID分组的最低和最高25%的值进行均值计算

如何使用Python 3缩放数据

如何使用熊猫计算列值和分组行的字符串中的字符数?

如何在WPF中使用ListBox对键和值进行分组

如何使用非数字值分组和旋转数据框

如何使用聚合中的最大值匹配和分组数组元素