数据蛙数据分析每周作业数据蛙强化课程第一期数据蛙数据分析基础学习

python数据分析:Apply的使用

2019-04-14  本文已影响149人  数据蛙datafrog

本文是《数据蛙三个月强化课》的第八篇总结教程,如果想要了解作者从转行后一直以来的思考,可以阅读谈谈转行数据分析以及工作心得。温馨提示:如果您已经熟悉apply函数的使用,大可不必再看这篇文章,或是之挑选部分内容

一:Apply函数的用法

1.apply函数的定义
对于pandas包中,apply函数应该是用的较多的了。这里我们一起从函数的定义开始来学习。在 juypter编辑器中输入?df.apply()便可以得到详细的函数定义,以及方便理解的案例。下面我节选一些常用参数来和大家一起探讨下

函数定义:
----------
 df.apply(func, axis=0, broadcast=False, raw=False,     reduce=None, args=(), **kwds)
函数的理解:
----------
apply函数中可以来使用自定义的函数(func);对于func中传递的参      
数,如果axis =0 应用于每一列上, 如果axis=1应用于每一行上 
参数:
----------
func : 自定义的函数
    函数应用在每一列或是每一行上
axis : {0 or 'index', 1 or 'columns'}, default 0
    * 0 or 'index': 应用函数在每一列上
    * 1 or 'columns': 应用函数在每一行上
args : 元组
    额外的给自定义函数传递一个元组参数
    array/series
 其中还是可以给自定义参数传递一个字典参数    
Returns
-------
applied : Series or DataFrame

2.apply函数的应用举例
我们先观察下测试的数据,数据点击可下载 提取码:34uj


数据展示的是某类文章被报刊接收时间和发表时间,这里的时间间隔正是我们想要求得的。下面我们一起来处理看看
  import datetime   #用来计算日期差的包
def dataInterval(data1,data2):
    d1 = datetime.datetime.strptime(data1, '%Y-%m-%d')
    d2 = datetime.datetime.strptime(data2, '%Y-%m-%d')
    delta = d1 - d2
    return delta.days

def getInterval(arrLike):  #用来计算日期间隔天数的调用的函数
    PublishedTime = arrLike['PublishedTime']
    ReceivedTime = arrLike['ReceivedTime']
    days = dataInterval(PublishedTime.strip(),ReceivedTime.strip())  #注意去掉两端空白
    return days

这时我们再看,TimeInterval列已经有数据了,然后大家自己运行函数看看

二:apply函数结合group by的使用

这里我们还是使用上面的数据,但是我们想让每类文章中参考次数大于平均值的为1,小于平均值的为0,那如何来操作呢?

这里能够看到是传入的每组的dataframe

参考资料:
1.Apply函数测试

上一篇下一篇

猜你喜欢

热点阅读