pandas---apply函数的应用

本文介绍Pandas库中的apply函数,展示如何利用该函数对DataFrame中的行或列进行灵活的数据处理,包括计算两列日期之间的天数差。通过具体实例,深入浅出地讲解了apply函数的使用方法和参数设置。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

简单介绍一下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



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
然后我们读表借助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后的表格样式图
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值