pandas---apply函数的应用

简单介绍一下apply函数,它属于pandas里面非常自由的函数,如果你想对表格里面每行或者每列某些数据进行操作(例:增,加,求平均数等等)就可以使用这个函数。

举例:一张表里,两个日期对应的列(’ReceivedTime‘,‘PublishedTime’)之间相差的天数。
表样式如下:
在这里插入图片描述
首先我们先定义两个日期间求天数的函数:

def Caltime(date1, date2):
    # %Y-%m-%d为日期格式,其中的-可以用其他代替或者不写,但是要统一,同理后面的时分秒也一样;可以只计算日期,不计算时间。
    d1 = datetime.datetime.strptime(date1, '%Y-%m-%d')
    d2 = datetime.datetime.strptime(date2, '%Y-%m-%d')
    delta = d1 - d2
    return delta.days

然后我们读表借助apply,将表中(’ReceivedTime‘,‘PublishedTime’)对应的参数传入函数Caltime里面

df=pd.read_excel('/Users/cuimengting/Desktop/NS_new.xls')
df['days']=df.apply(getDays,axis=1)
#这里大家可以看一下apply内部函数


def apply(self, func, axis=0, broadcast=None, raw=False, reduce=None,
              result_type=None, args=(), **kwds):
              
 #func:调用的函数名称
 # **kwds:关键字传参数
 #axis :0/列  1/行
 #broadcast :bool 是否保留原始表结构

以上代码我们用一行代码实现

df=pd.read_excel('/Users/cuimengting/Desktop/NS_new.xls')
df['days']=df.apply(lambda x:datetime.datetime.strptime(x['ReceivedTime'].strip(),'%Y-%m-%d')-datetime.datetime.strptime(x['PublishedTime'].strip(),'%Y-%m-%d'),axis=1)

增加days后的表格样式图
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/weixin_41505223/article/details/89247424
今日推荐