【问题标题】:apply an adjustment to each series depending on column name根据列名对每个系列进行调整
【发布时间】:2022-01-03 04:14:32
【问题描述】:

我正在处理时间序列数据。每个列标签是一年。

我想根据年份有选择地应用调整。

以下返回所有年份/列的 0.5 调整。早年如何应用调整后的因子?

for year in df_difference.columns: 
    if year < (2020):
        z = (((year - 2010) / (2020)) * 100) 
        adjusted_factor = z * 0.50
    else:
        adjusted_factor = 0.50

#Need to apply the appropriate factor to each item in the series (series/column name = year)
df_incremental_difference = df_difference.mul(adjusted_factor)

【问题讨论】:

    标签: python dataframe time-series conditional-statements


    【解决方案1】:

    试试这个:

    for year in df_difference.columns: 
        if year < (2020):
            z = (((year - 2010) / (2020)) * 100) 
            adjusted_factor = z * 0.50
        else:
            adjusted_factor = 0.50
    
        df_difference.loc[year].mul(adjusted_factor)
    

    【讨论】:

    • 嗨@Guinther Kovalski。谢谢参观。不幸的是,我收到错误:无法设置列不匹配的行。我会继续努力的。
    • 如果您能提供一些输入/输出示例,我相信我们可以为您提供帮助 (:
    【解决方案2】:

    我想通了 :) 谢谢 Guinther,你的回答帮助了我。

    for year in df_difference.columns:
        if year < 2020:
            z = (((year - 2010) / (2020)) * 100) 
    
        else:
            z = 1.0
    
        adjusted_factor = z * 0.50
        df_difference[year] = df_difference[year] * adjusted_factor
        print(year, z, adjusted_factor)
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-05-11
      • 1970-01-01
      • 2015-10-09
      • 2014-06-25
      • 2017-10-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多