pandas中获取每行最后一个非空元素

公司有一个问答产品,业务需要分析用户的主要跳出问题,而我得到的数据是一张含有每道题的问题和回答的excel表格,用pandas读取如下图所示。

可以看到针对每个人会有150个问题,和150个答案,但是大多数人都没有完成所有问题就跳出了,没有回答的问题在数据中就会显示NaN,现在需要统计每个人的跳出问题,也就是每个人回答问题的最后一个非空元素。

第一步:取出所有问题

原始数据的columns是非常规范的,我们先把所有问题拿出单独放在一个df里处理

questions = origin[['问题'+str(i) for i in range(1,151)]]

通过这一步我们得到如下数据

第二步:得到每行最后一个非空元素

这一步需要用到Dataframe对象的一个方法:last_valid_index()

从pandas官方手册中查到该方法的解释

该方法将返回最后一个非空元素的索引

接下里用这个函数自定义方法:

def get_last_ele(x):  if x.last_valid_index() is None:  # 一行中全为NaNreturn np.nanelse:return x[x.last_valid_index()]

对整个questions数据进行处理:

questions_re = questions.apply(get_last_ele, axis=1)  # 纵向处理
#  存在一行全为NaN的数据,返回结果中会出现空值
questions_re = questions_re.dropna(axis=0)  # 去空值

返回结果:

pandas取每行最后一个非空元素相关推荐

  1. c语言给定一个非空整数数组_C程序检查给定整数的所有位是否为一(1)

    c语言给定一个非空整数数组 Problem statement: Write a C Program to check if all the bits of a given integer is on ...

  2. 给你一个 非空 整数数组 nums ,除了某个元素只出现一次以外,其余每个元素均出现两次。找出那个只出现了一次的元素。

    给你一个 非空 整数数组 nums ,除了某个元素只出现一次以外,其余每个元素均出现两次.找出那个只出现了一次的元素. 你必须设计并实现线性时间复杂度的算法来解决此问题,且该算法只使用常量额外空间. ...

  3. Java 给定一个非空整数数组,除了某个元素只出现一次以外,其余每个元素均出现两次。找出那个只出现了一次的元素。

    给定一个非空整数数组,除了某个元素只出现一次以外,其余每个元素均出现两次.找出那个只出现了一次的元素. 示例 1: 输入: [2,2,1] 输出: 1示例 2: 输入: [4,1,2,1,2] 输出: ...

  4. 重复子字符串(给定一个非空的字符串,判断它是否可以由它的一个子串重复多次构成。给定的字符串只含有小写英文字母,并且长度不超过10000。)

    给定一个非空的字符串,判断它是否可以由它的一个子串重复多次构成.给定的字符串只含有小写英文字母,并且长度不超过10000.   示例 1: 输入: "abab" 输出: True ...

  5. 【Java 8 新特性】Java Comparator.nullsFirst | 将空元素被认为小于非空元素

    Java Comparator.nullsFirst | 将空元素被认为小于非空元素 使用 Comparator.nullsFirst 参考文献 nullsFirst是比较器功能接口的静态方法. Ja ...

  6. pandas取第一行数据_Pandas DataFrame 取一行数据会得到Series的方法

    Pandas DataFrame 取一行数据会得到Series的方法 Pandas DataFrame 取一行数据会得到Series的方法 如题,想要取如下dataframe的一行数据,以为得到的还是 ...

  7. 删除一个非空的无用表空间

    删除表空间: drop tablespace  表空间名; 如果表空间是非空会提示 执行:drop tablespace 表空间名   including contents; 转载于:https:// ...

  8. 给定一个非空整数数组,除了某个元素只出现一次以外,其余每个元素均出现两次。找出那个只出现了一次的元素。【LeetCode Hot 100】

    力扣热题100之第136题: 先贴代码: class Solution {public int singleNumber(int[] nums) {//异或int ans = 0;for(int i ...

  9. sql server2008如果表中已经有很多条记录,再添加一个非空字段

    alter table 表名 add 字段名 类型 not null default('') 转载于:https://www.cnblogs.com/deram/p/5880366.html

最新文章

  1. Binwalk固件分析利器
  2. win7系统开机启动出现蓝屏,提示BAD_SYSTEM_CONFIG_INFO
  3. 【Java 虚拟机原理】Java 引用类型 ( 强引用 | 软引用 | 弱引用 | 虚引用 | 静态变量 )
  4. SQL Server 2008 允许远程链接 解决方法
  5. 用Xshell连接ubuntu虚拟机
  6. 第一阶段:前端开发_Mysql——表与表之间的关系
  7. windows下docker的安装及常用命令学习
  8. atitit.编辑表单的实现最佳实践dwr jq easyui
  9. c# chart 各个属性_C# WINFORM项目Chart控件显示问题
  10. 2022Android设备唯一标识(AndroidID,OAID等 )
  11. 18款口碑爆棚手机浏览器,被一网打尽了
  12. 堆溢出off-by-one(asis-ctf-2016 pwn 之 b00ks)
  13. 大一到研二我收藏了数百个网址,从中挑选了十五个最值得收藏的网址推荐给你
  14. 【Linux命令】mergecap命令的用法
  15. 西安交通大学915考研--编程题Java代码踩坑(2020年真题)
  16. 最近整理的一些常见的面试题,面试大全,黑马程序员面试宝典题库---最新技术--篇
  17. 网页在线即时翻译- -
  18. 直线拟合c语言程序,ax+by+c=0 型直线拟合算法
  19. 移动安全测试框架MobSF(二):动态分析
  20. 刨根问底Objective-C Runtime

热门文章

  1. 【网络】IP、域名、端口号和DNS域名解析之间的联系简介(给服务器添加域名来验证)
  2. How to recognise a good programmer
  3. 2021年中国体育用品市场:耐克、阿迪后退,安踏持续向上破圈
  4. 关闭只为更好,耐克NRC退出中国市场,新一代“本地版”即将推出
  5. 利用非qq号码的QQ邮箱来获取qq号
  6. 【对比Java学Kotlin】object 关键字
  7. clusterProfiler安装
  8. Fast R-CNN论文原理+目标检测笔记(二)
  9. 再议易语言静态编译重定位数目过多
  10. 软件测试行业中ta表示什么意思,温度冲击测试ta/tc分别代表什么意思