解决方法

方法一:把 df.apply(function, axis=1)改为:zip(*df.apply(function, axis=1))
方法二:修改apply循环的那个函数,使其在传入的series中修改,并返回一个series
方法三:在apply中加一个参数result_type,改为:df.apply(add_one, axis=1, result_type='expand')

问题解析

对于下面的代码:

import pandas as pd# 对传入的值做 +1 的操作
def add_one(series):return series['a'] + 1, series['b'] + 1df = pd.DataFrame([[10, 1],[20, 2],[30, 3], ], columns=['a', 'b'])df['a'], df['b'] = df.apply(add_one, axis=1)

直接运行就会报错ValueError: too many values to unpack (expected 2),因为apply的返回结果是一个series,每一个series的值都包含一个tuple类型的数据,每个tuple中包含多个值,就是apply需要的结果。因此可以有以下写法:

方法一:使用zip处理tuple的常用方法:

df['a'], df['b'] = zip(*df.apply(add_one, axis=1))

方法二:修改apply的函数,使其在传入的series的基础上修改值,然后返回这个修改后的series,覆盖掉原来的值

def add_one(series):series['a'] = series['a'] + 1series['b'] = series['b'] + 1return series

方法三:这个更简便一点,直接加一个参数result_type就行:

df = df.apply(add_one, axis=1, result_type='expand')

参考文章

pandas 的apply返回多列,并赋值:https://blog.csdn.net/bbbeoy/article/details/105426825
Pandas 一次 Apply 返回多列结果的方法:https://liangxinhui.tech/2019/08/02/pandas-apply-multiple-columns-as-result/

解决pandas apply返回多个值时报错:ValueError: too many values to unpack相关推荐

  1. 解决yolov5 报错 ValueError: not enough values to unpack (expected 3, got 0)

    解决yolov5 报错 ValueError: not enough values to unpack (expected 3, got 0) *注意报错提示 :labels, shapes, sel ...

  2. 解决MySQL Workbench导出低版本MySQL时报错Unknown table ‘column_statistics’ in information_schema的问题

    解决MySQL Workbench导出低版本MySQL时报错Unknown table 'column_statistics' in information_schema的问题 参考文章: (1)解决 ...

  3. 【MySQL】解决MySQL删除外键(foreign key)时报错问题

    [MySQL]解决MySQL删除外键(foreign key)时报错问题 文章目录 [MySQL]解决MySQL删除外键(foreign key)时报错问题 一.现象 二.分析 三.问题解决 四.拓展 ...

  4. 成功解决ValueError: too many values to unpack (expected 2)

    成功解决ValueError: too many values to unpack (expected 2) 目录 解决问题 解决思路 解决方法 解决问题 ValueError: too many v ...

  5. 成功解决ValueError: not enough values to unpack (expected 2, got 1)

    成功解决ValueError: not enough values to unpack (expected 2, got 1) 目录 解决问题 解决思路 解决方法 解决问题 解决Python中出现的V ...

  6. 成功解决Python中出现的ValueError: not enough values to unpack (expected 2, got 1)的问题

    成功解决Python中出现的ValueError: not enough values to unpack (expected 2, got 1)的问题 目录 解决问题 解决思路 解决方法 解决问题 ...

  7. python调用cv2.findContours时报错:ValueError: not enough values to unpack (expected 3, got 2)

    python调用cv2.findContours时报错:ValueError: not enough values to unpack (expected 3, got 2) OpenCV旧版,返回三 ...

  8. 解决ValueError: too many values to unpack

    遇到了两次上述的bug,特此来记录一下,第一个来自于加载权重部分,第二个来自于代码运行时. 首先看第一个: pre_weights = torch.load(model_weight_path, ma ...

  9. import pyart时报错 ValueError: numpy.ndarray has the wrong size, try recompiling.

    import pyart时报错 ValueError: numpy.ndarray has the wrong size, try recompiling. 安装pip install arm-pya ...

最新文章

  1. 机器学习中如何处理不平衡数据?
  2. linux 挂载exfat u盘 yum,centos挂载exfat u盘
  3. fusioncharts同一页面显示2个仪表盘,且以java字符串作为xml数据
  4. 如果有这样一台服务器……
  5. mybatis-plus的 mapper.xml 路径配置的坑
  6. Android之ContentProvider数据存储
  7. visual studio 自带的 宏 没反应_横山宏科幻动漫模型:插图造型怪异的胡佛战车欣赏...
  8. 一文学会 Prometheus:开源系统监视和警报工具包!
  9. java旅客接口_GitHub - s1mplecc/checkin-scheduler: 使用 Java 实现的旅客人数分布预估与值机排班调度算法...
  10. python访问组策略_python 组策略
  11. Android的启动方式
  12. 线上事故复盘报告模板
  13. Python爬虫架构
  14. 工业互联网平台核心技术之一:数据集成与边缘处理技术
  15. laravel5整合sendcloud邮箱服务
  16. 显示gsensor即时数据的apk 用gsensor来判断手机的静和动 气压计的测试应用
  17. 第十六章 SQL命令 CREATE TABLE(三)
  18. ViewBinding和DataBinding的理解和区别
  19. 2022年最流行的几款软件缺陷管理工具
  20. python的tell和seek_4.2Python文件基本操作2:tell、seek

热门文章

  1. mysql5.7.10安装_MySQL5.7.10下载及安装及配置-阿里云开发者社区
  2. UE4 间接光照缓存
  3. Python-复习-习题-13
  4. SpringBoot面试题及答案整理
  5. 玩转linux——Screen管理远程会话,再也不怕关闭SSH就中断会话了
  6. 自定义评分器Similarity,提高搜索体验(转)
  7. SQLLoader1(简单测试,以控制文件方式导入数据)
  8. 主题:Hibernate/Spring/Struts架构使用OpenSessionInView的问题
  9. 黄聪:Discuz X2.0 SEO:论坛面包屑导航伪静态 去掉面包屑导航forum.php(转)
  10. 高效向前“零延迟” 数据中心IT自动化势在必行