• 售前

  • 售后

热门帖子
入门百科

pandas 实现将两列中的较大值组成新的一列

[复制链接]
123457608 显示全部楼层 发表于 2021-10-26 13:32:07 |阅读模式 打印 上一主题 下一主题
最近一个开发需求中要求用pandas实现该需求:

逐行对比两列,选出每行两列中较大的值加到第三列
翻了下好像没有类似的函数,以是没办法要本身造轮子,直接上代码和注释
  1. # 需要对比的值为value_x和value_y
  2. # 新家的列名为value_final
  3. # 1.设置一个flag,值为value_y-value_x,为正代表y较大,负代表x较大
  4. df_test['value_flag'] = df_test['Value_y'] - df_test['Value_x']
  5. # 2.分别取得y较大的部分和x较大的部分
  6. df_test_bigger = df_test[df_test['value_flag'] >= 0].copy()
  7. df_test_litter = df_test[df_test['value_flag'] < 0].copy()
  8. # 3.分别对final进行赋值
  9. df_test_bigger['Value_Final'] = df_test_bigger['Value_y']
  10. df_test_litter['Value_Final'] = df_test_litter['Value_x']
  11. # 4.使用concat函数将其聚合
  12. df_test_1 = pd.concat([df_test_bigger, df_test_litter])
复制代码
增补:pandas技巧--两列相加形成新一列(eval)
如下:
  1. data.eval('新字段=字段1+字段2',inplace=True)
  2. data.eval("""新字段1=字段1+字段2
  3.   新字段2=字段1+字段2
  4.   新字段3=字段1+字段2""",inplace=True)
复制代码
以上为个人履历,盼望能给各人一个参考,也盼望各人多多支持脚本之家。如有错误或未考虑完全的地方,望不吝见教。

帖子地址: 

回复

使用道具 举报

分享
推广
火星云矿 | 预约S19Pro,享500抵1000!
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

草根技术分享(草根吧)是全球知名中文IT技术交流平台,创建于2021年,包含原创博客、精品问答、职业培训、技术社区、资源下载等产品服务,提供原创、优质、完整内容的专业IT技术开发社区。
  • 官方手机版

  • 微信公众号

  • 商务合作