【问题标题】:Summing up values in columns up to a defined value将列中的值汇总到定义的值
【发布时间】:2021-08-17 11:31:45
【问题描述】:

我有一个数据框,其中的列如下所示:

Date = [01/01/2021, 02/02/2021, .... ,12/31/2021]

T_mean = [1.2, 2.7, 3.5, 2.9, 4.4, .....]

我想在数据框中添加一列,将 T_mean 的值相加如下:

Sum_Tmean = [1.2, 3.9, 7.4, 10.3, 14.7 ....]. 

一旦达到或超过值 10,我希望有Date 输出发生这种情况。如果可能,我还希望整行突出显示以粗体显示。

我用以下代码形成了T_mean 的最终总和:

Sum_Tmean = dataframe['T_mean'].sum()

但是,我不知道如何添加各个值。

我使用代码将新列添加到数据框中:

dataframe.insert(3, "Sum_Tmean", Sum_Tmean, allow_duplicates=False).

我想将其应用于几十年,温度限制为 200 °C,所以这发生在一年中的某个时候,而不是像示例中那样发生在一年的前几天。

感谢任何提示,并提前致谢。

【问题讨论】:

    标签: python pandas dataframe numpy cumsum


    【解决方案1】:

    我建议使用 numpy 中的累积求和函数 cumsum,如下所示:

    import numpy as np
    import pandas as pd
    
    def highlight_bold(s):
        is_mos = df['Sum_Tmean'] > 10.0
        return ['font-weight: bold' if v else 'font-weight:' for v in is_mos]
    
    Date = ['01/01/2021', '02/02/2021' ,'12/31/2021', '01/01/2021', '02/02/2021' ,'12/31/2021']
    
    T_mean = [1.2, 2.7, 3.5, 2.9, 4.4, 5.2]
    
    Sum_Tmean = list(np.cumsum(T_mean))
    
    d = {'Date':Date, 'T_mean':T_mean,'Sum_Tmean':Sum_Tmean}
    
    df = pd.DataFrame(d)
    
    styler = df.style.apply(highlight_bold)
    
    styler
    

    输出:

    【讨论】:

    • 非常感谢!这太棒了!
    猜你喜欢
    • 1970-01-01
    • 2017-09-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-02-19
    • 1970-01-01
    • 1970-01-01
    • 2018-12-11
    相关资源
    最近更新 更多