如何移位/偏移iloc和?

2024-09-27 21:25:19 发布

您现在位置:Python中文网/ 问答频道 /正文

你好我试着做excel函数的等价物sum(offset),抵消“年”来求和。所以我有十列从110的。但是如果maturity_years2,我只想对这两列求和。所以第一行将只添加前2列100 + 100。然后第二行maturity_years = 4,所以只求ECL_y1ECL_yr4的和,即244 +244 +244 +244..

到目前为止我已经

df_base_ifrs['ECL_LT']=df.iloc[:,1:10].shift(df['maturity_years']).sum(axis=1)

但不起作用

df = pd.DataFrame({'maturity_years': [2, 4, 0, 8],
               'ECL_y1': [100, 244, 443, 124],
               'ECL_y2': [100, 244, 443, 124],
               'ECL_y3': [100, 244, 443, 124],
               'ECL_y4': [100, 244, 443, 124],
               'ECL_y5': [100, 244, 443, 124],
               'ECL_y6': [100, 244, 443, 124],
               'ECL_y7': [100, 244, 443, 124],
               'ECL_y8': [100, 244, 443, 124],
               'ECL_y9': [100, 244, 443, 124],
               'ECL_y10': [100, 244, 443, 124],})

Tags: 函数ltdfbaseshiftexceloffsetsum
1条回答
网友
1楼 · 发布于 2024-09-27 21:25:19

嘿,告诉大家我终于明白了。尽管发出了警告

试图在数据帧的切片副本上设置值。 尝试改用.loc[row\u indexer,col\u indexer]=value

但是,如果你能提高时间效率,请提出你的答案

for i in range(0, len(df_base)):
    row = df_base.iloc[[i]]  
    mat_date = row['MATURITY_YEARS_D'].values[0]
    result = row.iloc[:,68:68+mat_date].sum(axis=1)
    result_as_float = result.values[0]
    row['ECL_LT'] = result_as_float
    print(result_as_float)

相关问题 更多 >

    热门问题