如何在Python中使用带有条件的Groupby

泊松

我有一个名为merged_df_energy的数据框

merged_df_energy.info()

<class 'pandas.core.frame.DataFrame'>
Int64Index: 11232 entries, 0 to 11231
Data columns (total 17 columns):
TIMESTAMP                       11232 non-null datetime64[ns]
P_ACT_KW                        11232 non-null int64
PERIODE_TARIF                   11232 non-null object
P_SOUSCR                        11232 non-null int64
high_energy                     11232 non-null int64
medium_energy                   11232 non-null int64
low_energy                      11232 non-null int64
0ACT_TIME_ETA_PRG_P2REF_RM      11232 non-null int64
0ACT_TIME_ETA_PRG_VDES_RM       11232 non-null int64
0ACT_TIME_ETA_PRG_P3REF_RM      11232 non-null int64
0ACT_TIME_ETA_POMP_RECIRC_N1    11232 non-null int64
0ACT_TIME_ETA_POMP_RECIRC_N2    11232 non-null int64
0ACT_TIME_ETA_POMP_RECIRC_N3    11232 non-null int64
0ACT_TIME_ETA_SURPRES_AIR_N1    11232 non-null int64
0ACT_TIME_ETA_SURPRES_AIR_N2    11232 non-null int64
0ACT_TIME_ETA_SURPRES_AIR_N3    11232 non-null int64
class_energy                    11232 non-null object
dtypes: datetime64[ns](1), int64(14), object(2)
memory usage: 1.5+ MB

具有这种结构:

TIMESTAMP P_ACT_KW PERIODE_TARIF P_SOUSCR high_energy medium_energy low_energy 0ACT_TIME_ETA_PRG_P2REF_RM 0ACT_TIME_ETA_PRG_VDES_RM 
0ACT_TIME_ETA_PRG_P3REF_RM 0ACT_TIME_ETA_POMP_RECIRC_N1 0ACT_TIME_ETA_POMP_RECIRC_N2 0ACT_TIME_ETA_POMP_RECIRC_N3 
0ACT_TIME_ETA_SURPRES_AIR_N1 0ACT_TIME_ETA_SURPRES_AIR_N2 
0ACT_TIME_ETA_SURPRES_AIR_N3 class_energy


2016-05-10 04:30:00 107 HP 250 107 0 0 100 0 0 0 0 0 0 0 0 high 

2016-05-10 04:40:00 109 HC 250 109 0 0 0 0 100 0 0 0 0 0 0 high 

2016-05-10 04:50:00 106 HP 250 106 0 0 0 0 100 0 0 0 0 0 0 high

我尝试计算(0ACT_TIME_ETA_PRG_P2REF_RM,0ACT_TIME_ETA_PRG_VDES_RM,0ACT_TIME_ETA_PRG_P3REF_RM,0ACT_TIME_ETA_POMP_RECIRC_N1 0ACT_TIME_ETA_POMP_RECIRC_N2,0ACT_TIME_ETA_POMP_RECIRC_N3,0ACT_TIME_ETA_SURPRES_AIR_N1,0ACT_TIME_ETA_SURPRES_AIR_N2,0ACT_TIME_ETA_SURPRES_AIR_N3 class_energy)组由(class_energy)的总和。

为此,我做到了:

df_F1 = (merged_df_energy.groupby(by=['class_energy'], as_index=False)['0ACT_TIME_ETA_PRG_P2REF_RM', '0ACT_TIME_ETA_PRG_VDES_RM','0ACT_TIME_ETA_PRG_P3REF_RM','0ACT_TIME_ETA_POMP_RECIRC_N1','0ACT_TIME_ETA_POMP_RECIRC_N2', '0ACT_TIME_ETA_POMP_RECIRC_N3', '0ACT_TIME_ETA_SURPRES_AIR_N1', '0ACT_TIME_ETA_SURPRES_AIR_N2', '0ACT_TIME_ETA_SURPRES_AIR_N3' ].sum())

它可以正常工作,但是我想知道如何在这种情况下执行此操作(如果PERIODE_TARIF ='HP')?

耶斯列尔

我认为您需要groupby boolean indexing

merged_df_energy1 = merged_df_energy[merged_df_energy.PERIODE_TARIF == 'HP']

cols = ['0ACT_TIME_ETA_PRG_P2REF_RM', 
       '0ACT_TIME_ETA_PRG_VDES_RM',
       '0ACT_TIME_ETA_PRG_P3REF_RM',
       '0ACT_TIME_ETA_POMP_RECIRC_N1',
       '0ACT_TIME_ETA_POMP_RECIRC_N2', 
       '0ACT_TIME_ETA_POMP_RECIRC_N3', 
       '0ACT_TIME_ETA_SURPRES_AIR_N1', 
       '0ACT_TIME_ETA_SURPRES_AIR_N2', 
       '0ACT_TIME_ETA_SURPRES_AIR_N3']
df_F1 = (merged_df_energy1.groupby(by=['class_energy'], as_index=False)[cols].sum())

print (df_F1)
  class_energy  0ACT_TIME_ETA_PRG_P2REF_RM  0ACT_TIME_ETA_PRG_VDES_RM  \
0         high                         100                          0   

   0ACT_TIME_ETA_PRG_P3REF_RM  0ACT_TIME_ETA_POMP_RECIRC_N1  \
0                         100                             0   

   0ACT_TIME_ETA_POMP_RECIRC_N2  0ACT_TIME_ETA_POMP_RECIRC_N3  \
0                             0                             0   

   0ACT_TIME_ETA_SURPRES_AIR_N1  0ACT_TIME_ETA_SURPRES_AIR_N2  \
0                             0                             0   

   0ACT_TIME_ETA_SURPRES_AIR_N3  
0                             0  

编辑:

如果列的顺序从未更改,则可以使用:

cols = merged_df_energy.columns[7:16]
print (cols)
Index(['0ACT_TIME_ETA_PRG_P2REF_RM', '0ACT_TIME_ETA_PRG_VDES_RM',
       '0ACT_TIME_ETA_PRG_P3REF_RM', '0ACT_TIME_ETA_POMP_RECIRC_N1',
       '0ACT_TIME_ETA_POMP_RECIRC_N2', '0ACT_TIME_ETA_POMP_RECIRC_N3',
       '0ACT_TIME_ETA_SURPRES_AIR_N1', '0ACT_TIME_ETA_SURPRES_AIR_N2',
       '0ACT_TIME_ETA_SURPRES_AIR_N3'],
      dtype='object')

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

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

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何在Python中使用带有条件的Groupby

来自分类Dev

如何在带有条件if的sqlalchemy中使用条件运算符or_?

来自分类Dev

在python中使用带有条件的Tkinter

来自分类Dev

如何在Magento中使用带有条件的删除查询

来自分类Dev

如何在SwiftUI中使用带有条件检查的按钮进行导航

来自分类Dev

如何在MySQL中使用带有条件的分组

来自分类Dev

使用带有条件的 java 8 groupBy

来自分类Dev

在带有条件参数的函数中使用“ sapply”

来自分类Dev

如何在有条件的一列中使用LINQ select

来自分类Dev

如何在大熊猫中使用有条件的聚集体?

来自分类Dev

如何在AEM中使用HTL有条件地添加数据属性?

来自分类Dev

如何在GoogleSheet中使用arrayformula对有条件的列进行计数?

来自分类Dev

如何在有条件的postgresql更新中使用临时变量?

来自分类Dev

如何在angular中使用ng-if有条件地显示消息

来自分类Dev

如何在 Pandas 中使用 .assign 方法有条件地分配计算列?

来自分类Dev

带有条件的Python断言

来自分类Dev

如何在python词典中有条件值?

来自分类Dev

任何想法我如何可以在Linux和Shell脚本中使用带有条件的超时命令

来自分类Dev

如何使用python有条件地修改列表

来自分类Dev

如何在带有条件多个where条件的Entity Framework中编写查询?

来自分类Dev

在带有条件的熊猫中使用value_counts

来自分类Dev

在 MySql 中使用 if 语句打印带有条件约束的新列

来自分类Dev

如何在XSL中删除所有带有条件的空标签

来自分类Dev

带有条件的Python循环:无论条件是否满足,都使用相同的代码

来自分类Dev

Symfony2-如何在准则2中查询带有条件的左联接

来自分类Dev

如何在aspx上调用带有条件updatepanel的自定义控件JavaScript?

来自分类Dev

如何在Prolog中动态声明带有条件的规则规则?

来自分类Dev

如何在Rust中获得带有条件的可变切片

来自分类Dev

如何在其他数据框上添加带有条件的列?

Related 相关文章

  1. 1

    如何在Python中使用带有条件的Groupby

  2. 2

    如何在带有条件if的sqlalchemy中使用条件运算符or_?

  3. 3

    在python中使用带有条件的Tkinter

  4. 4

    如何在Magento中使用带有条件的删除查询

  5. 5

    如何在SwiftUI中使用带有条件检查的按钮进行导航

  6. 6

    如何在MySQL中使用带有条件的分组

  7. 7

    使用带有条件的 java 8 groupBy

  8. 8

    在带有条件参数的函数中使用“ sapply”

  9. 9

    如何在有条件的一列中使用LINQ select

  10. 10

    如何在大熊猫中使用有条件的聚集体?

  11. 11

    如何在AEM中使用HTL有条件地添加数据属性?

  12. 12

    如何在GoogleSheet中使用arrayformula对有条件的列进行计数?

  13. 13

    如何在有条件的postgresql更新中使用临时变量?

  14. 14

    如何在angular中使用ng-if有条件地显示消息

  15. 15

    如何在 Pandas 中使用 .assign 方法有条件地分配计算列?

  16. 16

    带有条件的Python断言

  17. 17

    如何在python词典中有条件值?

  18. 18

    任何想法我如何可以在Linux和Shell脚本中使用带有条件的超时命令

  19. 19

    如何使用python有条件地修改列表

  20. 20

    如何在带有条件多个where条件的Entity Framework中编写查询?

  21. 21

    在带有条件的熊猫中使用value_counts

  22. 22

    在 MySql 中使用 if 语句打印带有条件约束的新列

  23. 23

    如何在XSL中删除所有带有条件的空标签

  24. 24

    带有条件的Python循环:无论条件是否满足,都使用相同的代码

  25. 25

    Symfony2-如何在准则2中查询带有条件的左联接

  26. 26

    如何在aspx上调用带有条件updatepanel的自定义控件JavaScript?

  27. 27

    如何在Prolog中动态声明带有条件的规则规则?

  28. 28

    如何在Rust中获得带有条件的可变切片

  29. 29

    如何在其他数据框上添加带有条件的列?

热门标签

归档