求知 文章 文库 Lib 视频 iPerson 课程 认证 咨询 工具 讲座 Modeler   Code  
会员   
要资料
 
追随技术信仰

随时听讲座
每天看新闻
 
 
Pandas 教程
1. Pandas 是什么
2.Pandas库下载和安装
3.Pandas Series入门教程
4.Pandas DataFrame入门教程
5.Pandas Panel三维数据结构
6.Python Pandas描述性统计
7.Pandas使用自定义函数
8.Pandas reindex重置索引
9.Pandas iteration遍历
10.Pandas sorting排序
11.Pandas去重函数:drop_duplicates()
12.Python Pandas处理字符串(方法详解)
13.Pandas设置数据显示格式
14.Pandas loc/iloc用法详解
15.Python Pandas统计函数
16.Python Pandas窗口函数
17.Python Pandas聚合函数
18.Python Pandas缺失值处理
19.Pandas groupby分组操作详解
20.Pandas merge合并操作
21.Pandas concat连接操作
22.Python Pandas时间序列
23.Pandas日期时间格式化
24.Padans Timedelta时间差
25.Pandas随机选择样本
26.Pandas数据重采样
27.Python Pandas分类对象
28.Python Pandas绘图
29.Python Pandas读取文件
30.Pandas csv读写文件
31.Pandas Excel读写操作
32.Pandas index操作索引
33.Pandas分层索引入门教程
34.Pandas执行SQL操作
35.Pandas和NumPy的比较
36.Pandas使用的注意事项
 

 
Padans Timedelta时间差
24 次浏览
1次  

Timedelta 表示时间差(或者时间增量),我们可以使用不同的时间单位来表示它,比如,天、小时、分、秒。时间差的最终的结果可以是正时间差,也可以是负时间差。

本节主要介绍创建 Timedelta (时间差)的方法以及与时间差相关的运算法则。

字符串

通过传递字符串可以创建 Timedelta 对象,示例如下:

1. import pandas as pd
2. print(pd.Timedelta('5 days 8 hours 6 minutes 59 seconds'))

输出结果:

5 days 08:06:59


整数

通过传递整数值和 unit 参数也可以创建一个 Timedelta 对象。

1. import pandas as pd
2. print(pd.Timedelta(19,unit='h'))

输出结果:

0 days 19:00:00


数据偏移量

数据偏移量, 比如,周(weeks)、天(days)、小时(hours)、分钟(minutes)、秒(milliseconds)、毫秒、微秒、纳秒都可以使用。

1. import pandas as pd
2. print (pd.Timedelta(days=2,hours=6))

输出结果:

2 days 06:00:00

to_timedelta()

您可以使用 pd.to_timedelta() 方法,将具有 timedelta 格式的值 (标量、数组、列表或 Series)转换为 Timedelta 类型。如果输入是 Series,则返回 Series;如果输入是标量,则返回值也为标量,其他情况输出 TimedeltaIndex。示例如下:

1. import pandas as pd
2. print(pd.to_timedelta(['1 days 06:05:01.00003', '15.5us', 'nan']))
3. print(pd.to_timedelta(np.arange(5), unit='s'))

输出结果:

TimedeltaIndex(['1 days 06:05:01.000030', '0 days 00:00:00.000015', NaT],dtype='timedelta64[ns]', freq=None)

TimedeltaIndex(['0 days 00:00:00', '0 days 00:00:01', '0 days 00:00:02','0 days 00:00:03', 
'0 days 00:00:04'],dtype='timedelta64[ns]', freq=None)

算术操作

通过对 datetime64[ns] 类型的时间序列或时间戳做算术运算,其运算结果依然是 datetime64[ns] 数据类型。接下来,我们创建一个带有 Timedelta 与 datetime 的 DataFrame 对象,并对其做一些算术运算。

1. import pandas as pd
2. s = pd.Series(pd.date_range('2020-1-1', periods=5, freq='D'))
3. #推导式用法
4. td = pd.Series([ pd.Timedelta(days=i) for i in range(5)])
5. df = pd.DataFrame(dict(A = s, B = td))
6. print(df)

输出结果:

           A      B
0 2020-01-01 0 days
1 2020-01-02 1 days
2 2020-01-03 2 days
3 2020-01-04 3 days
4 2020-01-05 4 days

加法运算

1. import pandas as pd
2. s = pd.Series(pd.date_range('20120-1-1', periods=3, freq='D'))
3. td = pd.Series([ pd.Timedelta(days=i) for i in range(3) ])
4. df = pd.DataFrame(dict(A = s, B = td))
5. #加法运算
6. df['C']=df['A']+df['B']
7. print(df)

输出结果:

           A      B          C
0 2020-01-01 0 days 2020-01-01
1 2020-01-02 1 days 2020-01-03
2 2020-01-03 2 days 2020-01-05

减法运算

1. import pandas as pd
2. s = pd.Series(pd.date_range('2012-1-1', periods=3, freq='D'))
3. td = pd.Series([ pd.Timedelta(days=i) for i in range(3) ])
4. df = pd.DataFrame(dict(A = s, B = td))
5. df['C']=df['A']+df['B']
6. df['D']=df['C']-df['B']
7. print(df)

输出结果:

           A      B          C          D
0 2019-01-01 0 days 2019-01-01 2019-01-01
1 2019-01-02 1 days 2019-01-03 2019-01-02
2 2019-01-03 2 days 2019-01-05 2019-01-03

您可以捐助,支持我们的公益事业。

1元 10元 50元





认证码: 验证码,看不清楚?请点击刷新验证码 必填



24 次浏览
1次