Pandas to_timedelta(~)
方法将给定参数转换为 timedelta。 Timedeltas 是用于执行日期算术的时间单位(例如 1 小时 40 毫秒)。
参数
1.arg
| string
或 timedelta
或 array-like
要转换为时间增量的数据。
2. unit
| string
| optional
提供的 arg
的单位。直接取自官方文档的可能值如下:
'Y', 'M', 'W', 'D', 'days', 'day', 'hours', 'hour', 'hr', 'h',
'm', 'minute', 'min', 'minutes', 'T', 'S', 'seconds', 'sec', 'second',
'ms', 'milliseconds', 'millisecond', 'milli', 'millis', 'L',
'us', 'microseconds', 'microsecond', 'micro', 'micros', 'U',
'ns', 'nanoseconds', 'nano', 'nanos', 'nanosecond', 'N'
默认情况下,unit="ns"
(纳秒)。
3. errors
| string
| optional
当arg
无法转换为时间增量时如何处理:
值 |
说明 |
---|---|
|
如果无法解析 |
|
如果无法解析,则返回 |
|
如果无法解析 |
默认情况下,errors="raise"
。
返回值
如果提供单个数据单元,则返回timedelta64
。否则,返回 timedelta64
的 NumPy 数组。
例子
来自字符串
要将字符串转换为时间增量:
pd.to_timedelta("2 days 03:04:05")
Timedelta('2 days 03:04:05')
从一组数字
要将数字数组转换为 timedelta
数组:
pd.to_timedelta([20,15], unit="hours")
TimedeltaIndex(['20:00:00', '15:00:00'], dtype='timedelta64[ns]', freq=None)
注意
小数点也将被考虑在内。例如,考虑以下情况:
pd.to_timedelta([2.5], unit="D")
TimedeltaIndex(['2 days 12:00:00'], dtype='timedelta64[ns]', freq=None)
我们看到2.5
天被解释为2
天和12
小时。
处理错误
增加
默认情况下,errors="raise"
- 如果任何转换不成功,则会引发错误。例如,假设我们有一些无意义的数据,如下所示:
pd.to_timedelta([20,[]], unit="hours") # errors="raise"
ValueError: Invalid type for timedelta scalar: <class 'list'>
忽视
每当从特定值的转换不成功时,我们可以使该方法返回该值而不是抛出错误。这是通过设置 unit="ignore"
来完成的:
pd.to_timedelta([20,[]], unit="hours", errors="ignore")
array([20, list([])], dtype=object)
强制
对于不成功的转换,我们可以让该方法返回 NaT
(not-a-time):
pd.to_timedelta([20,[]], unit="hours", errors="coerce")
TimedeltaIndex(['20:00:00', NaT], dtype='timedelta64[ns]', freq=None)
timedelta 的实际使用
Timedelta
主要用于执行日期运算。例如,您可以对 DatetimeIndex
中的日期应用 2 天的偏移量,如下所示:
idx = pd.DatetimeIndex(["2020-12-25","2020-12-26"])
idx + pd.to_timedelta("2D")
DatetimeIndex(['2020-12-27', '2020-12-28'], dtype='datetime64[ns]', freq=None)
我们还可以将 Timedelta
添加到日期列中。例如,考虑以下情况:
df = pd.DataFrame({"A": pd.date_range("2020-12-25", "2020-12-26")})
df
A
0 2020-12-25
1 2020-12-26
让我们在这些日期中添加几天:
df["B"] = df["A"] + pd.to_timedelta([3.5, 4], unit="D")
df
A B
0 2020-12-25 2020-12-28 12:00:00
1 2020-12-26 2020-12-30 00:00:00
在这里,生成的列 B
也是 datetime
:
df.dtypes
A datetime64[ns]
B datetime64[ns]
dtype: object
相关用法
- Python Pandas to_datetime方法用法及代码示例
- Python Pandas to_numeric方法用法及代码示例
- Python torch.distributed.rpc.rpc_async用法及代码示例
- Python torch.nn.InstanceNorm3d用法及代码示例
- Python torchaudio.transforms.Fade用法及代码示例
- Python torch.special.gammaincc用法及代码示例
- Python torch.optim.lr_scheduler.ConstantLR用法及代码示例
- Python torch.normal用法及代码示例
- Python torchdata.datapipes.iter.Multiplexer用法及代码示例
- Python torch.nn.quantized.dynamic.LSTM用法及代码示例
- Python torch.nn.EmbeddingBag用法及代码示例
- Python torch.nn.Module.register_forward_hook用法及代码示例
- Python torch.nn.AvgPool2d用法及代码示例
- Python torch.nn.PixelShuffle用法及代码示例
- Python torch.Generator.initial_seed用法及代码示例
- Python torch.resolve_neg用法及代码示例
- Python torchtext.vocab.Vectors.get_vecs_by_tokens用法及代码示例
- Python torch.nn.CELU用法及代码示例
- Python torch.reciprocal用法及代码示例
- Python torch.nn.Hardsigmoid用法及代码示例
- Python torch.fft.fft用法及代码示例
- Python torch.distributed.TCPStore用法及代码示例
- Python torch.distributed.pipeline.sync.skip.skippable.stash用法及代码示例
- Python torch.nn.GLU用法及代码示例
- Python torch.nn.functional.conv1d用法及代码示例
注:本文由纯净天空筛选整理自Isshin Inada大神的英文原创作品 Pandas | to_timedelta method。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。