首页 > 解决方案 > 如何在循环中替换 Pandas Dataframe 中的值?

问题描述

我有看起来像这样的熊猫数据框:

       feat_1   feat_2  feat_3  ...  ... 
target  10       23       15    
UL      0.5      4        7 
LL     -0.5     -4       -7

其中 UL 和 LL 代表上限和下限,这是索引。我想在循环中替换具有计算限制的值,如下所示:

for col in df.columns:
    UL = df[column].loc['target'] + df[column].loc['UL']
    LL = df[column].loc['target'] + df[column].loc['LL']

   ??? 

所以我想要的输出看起来像这样:

       feat_1   feat_2  feat_3  ...  ... 
target  10       23       15    
UL      10.5     27       22    
LL      9.5      19       8

标签: pythonpandas

解决方案


您可以使用非循环解决方案,例如仅使用DataFrame.loc

df.loc[['UL', 'LL']] += df.loc['target']
print (df)
        feat_1  feat_2  feat_3
target    10.0    23.0    15.0
UL        10.5    27.0    22.0
LL         9.5    19.0     8.0

像这样工作:

df.loc[['UL', 'LL']] = df.loc[['UL', 'LL']] + df.loc['target']

推荐阅读