- Python pandas教程
- Python Pandas - 主页
- Python Pandas - 简介
- Python Pandas - 环境设置
- 数据结构简介
- Python pandas - 系列
- Python Pandas - 数据帧
- Python Pandas - 面板
- Python Pandas - 基本功能
- 描述性统计
- 功能应用
- Python Pandas - 重新索引
- Python Pandas - 迭代
- Python Pandas - 排序
- 处理文本数据
- 选项和定制
- 索引和选择数据
- 统计功能
- Python Pandas - 窗口函数
- Python Pandas - 聚合
- Python Pandas - 缺失数据
- Python Pandas - GroupBy
- Python Pandas - 合并/连接
- Python Pandas - 连接
- Python Pandas - 日期功能
- Python Pandas - Timedelta
- Python Pandas - 分类数据
- Python Pandas - 可视化
- Python Pandas - IO 工具
- Python Pandas - 稀疏数据
- Python Pandas - 注意事项和陷阱
- 与SQL的比较
- Python Pandas 有用资源
- Python Pandas - 快速指南
- Python Pandas - 有用的资源
- Python Pandas - 讨论
Python Pandas - Timedelta
时间增量是时间上的差异,以差异单位表示,例如天、小时、分钟、秒。它们既可以是积极的,也可以是消极的。
我们可以使用各种参数创建 Timedelta 对象,如下所示 -
细绳
通过传递字符串文字,我们可以创建一个 timedelta 对象。
import pandas as pd print pd.Timedelta('2 days 2 hours 15 minutes 30 seconds')
其输出如下 -
2 days 02:15:30
整数
通过传递带有单位的整数值,参数创建一个 Timedelta 对象。
import pandas as pd print pd.Timedelta(6,unit='h')
其输出如下 -
0 days 06:00:00
数据偏移量
诸如周、天、小时、分钟、秒、毫秒、微秒、纳秒之类的数据偏移也可以在构造中使用。
import pandas as pd print pd.Timedelta(days=2)
其输出如下 -
2 days 00:00:00
to_timedelta()
使用顶级pd.to_timedelta,您可以将标量、数组、列表或系列从可识别的 timedelta 格式/值转换为 Timedelta 类型。如果输入是系列,它将构造 Series;如果输入是类似标量,它将构造标量;否则将输出TimedeltaIndex。
import pandas as pd print pd.Timedelta(days=2)
其输出如下 -
2 days 00:00:00
运营
您可以对Series/DataFrame进行操作,并通过对datetime64[ns]系列或时间戳进行减法运算来构造timedelta64[ ns]系列。
现在让我们使用 Timedelta 和 datetime 对象创建一个 DataFrame 并对其执行一些算术运算 -
import pandas as pd s = pd.Series(pd.date_range('2012-1-1', periods=3, freq='D')) td = pd.Series([ pd.Timedelta(days=i) for i in range(3) ]) df = pd.DataFrame(dict(A = s, B = td)) print df
其输出如下 -
A B 0 2012-01-01 0 days 1 2012-01-02 1 days 2 2012-01-03 2 days
加法运算
import pandas as pd s = pd.Series(pd.date_range('2012-1-1', periods=3, freq='D')) td = pd.Series([ pd.Timedelta(days=i) for i in range(3) ]) df = pd.DataFrame(dict(A = s, B = td)) df['C']=df['A']+df['B'] print df
其输出如下 -
A B C 0 2012-01-01 0 days 2012-01-01 1 2012-01-02 1 days 2012-01-03 2 2012-01-03 2 days 2012-01-05
减法运算
import pandas as pd s = pd.Series(pd.date_range('2012-1-1', periods=3, freq='D')) td = pd.Series([ pd.Timedelta(days=i) for i in range(3) ]) df = pd.DataFrame(dict(A = s, B = td)) df['C']=df['A']+df['B'] df['D']=df['C']+df['B'] print df
其输出如下 -
A B C D 0 2012-01-01 0 days 2012-01-01 2012-01-01 1 2012-01-02 1 days 2012-01-03 2012-01-04 2 2012-01-03 2 days 2012-01-05 2012-01-07