相关文章推荐
气势凌人的电池  ·  django ...·  3 周前    · 
豁达的羊肉串  ·  Qt Json的使用教程 - ...·  2 周前    · 
旅行中的砖头  ·  Qt Json_qt ...·  2 周前    · 
坚韧的日光灯  ·  openvino系列 1. ...·  2 月前    · 
健身的铁链  ·  24_Pandas.DataFrame,Se ...·  11 月前    · 
强健的吐司  ·  MySQL ...·  1 年前    · 
愤怒的伤疤  ·  How do I call a ...·  1 年前    · 

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:  # 一行中全为NaN
        return np.nan
    else:
        return x[x.last_valid_index()]

对整个questions数据进行处理:

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

返回结果:

Dataframe中取出每行最后一个非空元素公司有一个问答产品,业务需要分析用户的主要跳出问题,而我得到的数据是一张含有每道题的问题和回答的excel表格,用pandas读取如下图所示。可以看到针对每个人会有150个问题,和150个答案,但是大多数人都没有完成所有问题就跳出了,没有回答的问题在数据中就会显示NaN,现在需要统计每个人的跳出问题,也就是每个人回答问题的最后一个非空元素。第一步... Python原生 :列表的列表 Numpy :ndarray ,比python的list性能更好,有mean()、std()、sum()等更多的跟数学计算相关的内置函数,作用于整个数组,访问语法差别:a[1,2](Numpy ndarray)、a[1][2]( Python List) PandasDataFrame 轴:axis,确定行的方向还是列的方向 im...
在使用pandas处理数据时,会遇到这样一个问题:打开文档查看某些列明显有很多是空的,但是在python里用dataframe.info统计出来并不是空的,这是因为excel表里这些数据看起来是空的值,但其实是一个空格,但是用isnull判断是为False的。 解决方案: 对整张表dataframe替换空格为np.nan,可以使用replace方法通过正则匹配空格,然后替换:
pandas介绍 Pandas 的数据结构:Pandas 主要有 Series(一维数组),DataFrame二维数组),Panel(三维数组),Panel4D(四维数组),PanelND(更多维数组)等数据结构。其中 Series 和 DataFrame 应用的最为广泛。 Pandas 常用的数据结构有两种:Series 和 DataFrame。这些数据结构构建在 Numpy 数组之上,这意味着它们效率很高。 python版本:3.5>=python 导入相关库 import numpy
numpy已经可以帮助我们进行数据的处理了,那么学习pandas的目的是什么呢? - numpy能够帮助我们处理的是数值型的数 据,当然在数据分析中除了数值型的数据还有好多其他类型的数据(字符串,时间序列),那么pandas就可以帮我们很好的处理除了数值型的其他数据! pandas常用的两个类 Series DataFrame Series Series是一种类似与一维数组的对象,由下面两个部分组成: values:一组数据(ndarray类型) index: