【问题标题】:How to Accumulate/Collect/Sum list?如何累积/收集/汇总列表?
【发布时间】:2017-04-16 23:22:36
【问题描述】:

我真的是使用 Python 的新手。我需要实现以下目标。

我有一个清单

[
  ['1604201722','16/04/2017','22', 100.0, 10.0, 110.0],<br>
  ['1604201722','16/04/2017','22', 100.0, 10.0, 110.0],<br>
  ['1604201719','16/04/2017','19', 100.0, 10.0, 110.0]<br>
]

线结构是

['     ID   ','    DATE  ','Hour',  CANT, CANT, CANT]
['1604201722','16/04/2017','22'  ,  100.0,10.0, 110.0]

我需要像这样累积值:

['1604201722','16/04/2017', '22' , 200.0, 20.0, 240.0]
['1604201719','16/04/2017', '19' , 100.0, 10.0, 110.0]

【问题讨论】:

  • 解决问题的最佳方法是将列表转换为pandas 数据框,然后转换为groupby(["ID","DATE","Hour"]).cum()。我把实现细节留给你。

标签: python list sum collect


【解决方案1】:

尝试使用pandas dataframe

import pandas as pd
d = [
  ['1604201722','16/04/2017','22', 100.0, 10.0, 110.0],
  ['1604201722','16/04/2017','22', 100.0, 10.0, 110.0],
  ['1604201719','16/04/2017','19', 100.0, 10.0, 110.0]
]
df= pd.DataFrame(d,columns=['ID','DATE','HOUR','col1','col2','col3'])
print(df.groupby(['ID','DATE','HOUR']).sum())

这将给出这个输出:

ID         DATE       HOUR   col1  col2   col3                   
1604201719 16/04/2017 19    100.0  10.0  110.0
1604201722 16/04/2017 22    200.0  20.0  220.0

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-01-02
    • 2018-07-02
    • 1970-01-01
    • 2017-10-05
    • 1970-01-01
    • 2019-02-15
    • 1970-01-01
    • 2013-03-31
    相关资源
    最近更新 更多