pandas数据处理 您所在的位置:网站首页 pandas除以0的问题 pandas数据处理

pandas数据处理

2023-12-14 15:56| 来源: 网络整理| 查看: 265

计算两列数据的时间差,按天数返回。

源数据的格式如下:

为防止两列出现空值情况,先对其进行空值填充(可选)

# 时间空值填充 time=date(2000,1,1) data[["l_call_time3","l_call_time2"]]=data[["l_call_time3","l_call_time2"]].fillna(time)

调用pandas.to_datetime()函数将数据转换为日期时间,再进行时间差计算。

data["l_call_time23"]=pd.to_datetime(data["l_call_time2"])-pd.to_datetime(data["l_call_time3"])

处理后的数据形式如下:

再提取days之前的数据:

# 提取days之前的数 data["l_call_time23"]=data["l_call_time23"].map(lambda x:x.days)

处理后数据形式:

  pd.to_datetime参数介绍 #参数如下 pd.to_datetime(arg, errors='raise', dayfirst=False, yearfirst=False, utc=None, box=True, format=None, exact=True, unit=None, infer_datetime_format=False, origin='unix', cache=True) 参数:

(1)arg:int,float,str,datetime,list,tuple,1-d数组,Series,DataFrame / dict-like,要转换为日期时间的对象

(2)errors:{'ignore','raise','coerce'},默认为'raise'

如果为“ raise”,则无效的解析将引发异常如果为“coerce”,则将无效解析设置为NaT如果为“ ignore”,则无效的解析将返回输入

(3)dayfirst:bool,默认为False,

如果arg是str或类似列表,则指定日期解析顺序。如果为True,则首先解析日期,例如12/10/11解析为2011-10-12。警告:dayfirst = True并不严格,但更喜欢使用day first进行解析(这是一个已知的错误,基于dateutil的行为)

(4)yearfirst:布尔值,默认为False,

如果arg是str或类似列表,则指定日期解析顺序。如果True解析日期以年份为第一,则将10/11/12解析为2010-11-12。如果dayfirst和yearfirst均为True,则在yearfirst之后(与dateutil相同)。警告:yearfirst = True并不严格,但更喜欢使用year first进行解析(这是一个已知的错误,基于dateutil的行为)。

(5)utc: bool,默认值 None,如果为True,则返回UTC DatetimeIndex(也转换任何支持tz的datetime.datetime对象)

(6)format:str,格式,default None,解析时间的strftime,例如“%d /%m /%Y”,请注意,“%f”将一直解析直至纳秒。有关选择的更多信息,请参见strftime文档:https : //docs.python.org/3/library/datetime.html#strftime-and-strptime-behavior。

(7)exact:精度,bool:True by default,表现为:如果为True,则需要精确的格式匹配。如果为False,则允许格式匹配目标字符串中的任何位置。

(8)unit: str,单位,default ‘ns’,arg的单位(D,s,ms,us,ns)表示单位,它是整数或浮点数。这将基于原点。例如,在unit ='ms'和origin ='unix'(默认值)的情况下,这将计算到unix纪元开始的毫秒数

(9)infer_datetime_format:bool,默认为False,如果为True且未给出格式,请尝试根据第一个非NaN元素推断日期时间字符串的格式,如果可以推断出日期时间字符串的格式,请切换到解析它们的更快方法。在某些情况下,这可以使解析速度提高约5-10倍。

(10)origin:标量, default ‘unix’,

      定义参考日期。自该参考日期以来,数值将被解析为单位数(由unit定义)。

如果是“ unix”(或POSIX)时间;原点设置为1970-01-01。如果为'julian',则单位必须为'D',并且原点设置为Julian Calendar的开头。朱利安天数0被指定为从4713年1月1日中午开始的那一天。如果时间戳可转换,则将原点设置为由原点标识的时间戳。

(11)cache:布尔值,默认为True

如果为True,则使用唯一的转换日期缓存来应用datetime转换。解析重复的日期字符串时,尤其是带有时区偏移的日期字符串时,可能会大大提高速度。仅当至少有50个值时才使用缓存。越界值的存在将使高速缓存不可用,并可能减慢解析速度 0.23.0版中的新功能。在0.25.0版中进行了更改: -将默认值从False更改为True。

返回值:

datetime

如果解析成功。返回类型取决于输入:

list-like: DatetimeIndex

Series: Series of datetime64 dtype

scalar: Timestamp

如果无法返回指定的类型(例如,当输入的任何元素在Timestamp.min之前或Timestamp.max之后),则返回将具有datetime.datetime类型(或对应的数组/系列)。



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有