为了账号安全,请及时绑定邮箱和手机立即绑定

根据单个列中的值向数据框列添加值

根据单个列中的值向数据框列添加值

GCT1015 2022-06-07 16:57:34
我有一个DataFrame每年的 kg/ha 值,其中列从 1950 年到 2015 年。第一列是gridcode_1从 1 到 4 的网格代码 ( )。每个网格代码都有一个特定的附加值,我想添加到 kg/ha 值其他列。我试图通过 for 循环和正则表达式来解决它for x in kilograms_dep2:    if kilograms_dep2['gridcode_1'] == 1:        kilograms[regex="[0-9]{4}"] + 2.7    elif kilograms_dep2['gridcode_1'] == 2:        kilograms_dep2[regex="[0-9]{4}"] + 16.04    elif kilograms_dep2['gridcode_1'] == 3:        kilograms_dep2[regex="[0-9]{4}"] + 2.7    elif kilograms_dep2['gridcode_1'] == 4:        kilograms_dep2[regex="[0-9]{4}"] + 0.75但它只会导致语法错误。这是数据框的前几个条目 gridcode_1         1950_y         1951_y         1952_y         1953_y          1    1477.273256    1477.273256    1477.273256    1477.273256          2  523883.351859  523883.351859  523883.351859  523883.351859          3    2698.864601    2698.864601    2698.864601    2698.864601          4    6458.175014    6458.175014    6458.175014    6458.175014所以gricode_1 = 1我想添加2.7,gridcode_1 = 2我想添加16.04等。对于优雅的解决方案,我将不胜感激。
查看完整描述

1 回答

?
幕布斯6054654

TA贡献1876条经验 获得超7个赞

columns_list  = list(df.columns)

columns_list.remove('code')


df.loc[(df['code'] == 1 ),columns_list] = df.loc[(df['code'] == 1),columns_list] + 2.7


df.loc[(df['code'] == 2 ),columns_list] = df.loc[(df['code'] == 2),columns_list] + 16.04

结果:

//img1.sycdn.imooc.com//629f1318000179fd03270217.jpg

查看完整回答
反对 回复 2022-06-07
  • 1 回答
  • 0 关注
  • 94 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信