Pandas 时间+分钟
介绍
在数据处理的过程中,经常需要对时间进行计算和处理。Pandas 是一个强大的 Python 数据分析库,提供了丰富的时间处理功能,可以方便地对时间进行操作。
本文将详细介绍 Pandas 中对时间和分钟的操作,包括时间的创建、时间的加减运算、时间的格式化输出等。
创建时间
Pandas 提供了多种创建时间的方式。下面以一个示例来展示如何创建时间。
import pandas as pd
# 创建一个时间范围为一天的时间序列,频率为分钟
dates = pd.date_range('2022-01-01', periods=1440, freq='T')
print(dates)
运行上述代码,将输出一个包含一天时间范围的时间序列:
DatetimeIndex(['2022-01-01 00:00:00', '2022-01-01 00:01:00',
'2022-01-01 00:02:00', '2022-01-01 00:03:00',
'2022-01-01 00:04:00', '2022-01-01 00:05:00',
...
'2022-01-01 23:54:00', '2022-01-01 23:55:00',
'2022-01-01 23:56:00', '2022-01-01 23:57:00',
'2022-01-01 23:58:00', '2022-01-01 23:59:00'],
dtype='datetime64[ns]', length=1440, freq='T')
上述代码中,使用 pd.date_range
函数创建了从 '2022-01-01'
开始的一天时间范围,periods=1440
表示一共有 1440 个时间点,freq='T'
表示频率为分钟,即时间的间隔为一分钟。创建完成后,得到了一个包含一天时间范围的时间序列。
时间的加减运算
在 Pandas 中,可以很方便地对时间进行加减运算,例如加上一定的分钟数、小时数等。下面通过示例代码来说明如何进行时间的加减运算。
import pandas as pd
# 创建一个时间范围为一天的时间序列,频率为分钟
dates = pd.date_range('2022-01-01', periods=1440, freq='T')
# 时间加上一小时
new_dates = dates + pd.Timedelta(hours=1)
print(new_dates)
# 时间减去30分钟
new_dates = dates - pd.Timedelta(minutes=30)
print(new_dates)
运行上述代码,将输出时间加减后的结果:
DatetimeIndex(['2022-01-01 01:00:00', '2022-01-01 01:01:00',
'2022-01-01 01:02:00', '2022-01-01 01:03:00',
'2022-01-01 01:04:00', '2022-01-01 01:05:00',
...
'2022-01-02 00:54:00', '2022-01-02 00:55:00',
'2022-01-02 00:56:00', '2022-01-02 00:57:00',
'2022-01-02 00:58:00', '2022-01-02 00:59:00'],
dtype='datetime64[ns]', length=1440, freq='T')
DatetimeIndex(['2021-12-31 23:30:00', '2021-12-31 23:31:00',
'2021-12-31 23:32:00', '2021-12-31 23:33:00',
'2021-12-31 23:34:00', '2021-12-31 23:35:00',
...
'2022-01-01 23:24:00', '2022-01-01 23:25:00',
'2022-01-01 23:26:00', '2022-01-01 23:27:00',
'2022-01-01 23:28:00', '2022-01-01 23:29:00'],
dtype='datetime64[ns]', length=1440, freq='T')
上述代码中,首先使用 pd.date_range
函数创建了一个包含一天时间范围的时间序列。然后,通过 +
运算符加上了一小时,得到了加上一小时的新时间序列;通过 -
运算符减去了 30 分钟,得到了减去 30 分钟的新时间序列。
可以看到,通过时间的加减运算,我们可以很方便地对时间进行位移操作,得到新的时间序列。
格式化输出时间
在实际应用中,经常需要以不同的格式输出时间。Pandas 提供了多种格式化输出时间的方法,方便我们根据需求进行自定义输出。
下面通过示例代码来说明如何格式化输出时间。
import pandas as pd
# 创建一个时间范围为一天的时间序列,频率为分钟
dates = pd.date_range('2022-01-01', periods=1440, freq='T')
# 输出时间的日期部分
print(dates.strftime('%Y-%m-%d'))
# 输出时间的小时部分
print(dates.strftime('%H'))
# 输出时间的分钟部分
print(dates.strftime('%M'))
# 输出时间的秒部分
print(dates.strftime('%S'))
# 输出时间的完整格式
print(dates.strftime('%Y-%m-%d %H:%M:%S'))
运行上述代码,将输出时间的不同部分和完整格式:
['2022-01-01' '2022-01-01' '2022-01-01' ... '2022-01-01' '2022-01-01'
'2022-01-01']
['00' '00' '00' ... '23' '23' '23']
['00' '01' '02' ... '57' '58' '59']
['00' '01' '02' ... '57' '58' '59']
['2022-01-01 00:00:00' '2022-01-01 00:01:00' '2022-01-01 00:02:00' ...
'2022-01-01 23:57:00' '2022-01-01 23:58:00' '2022-01-01 23:59:00']
上述代码中,使用 pd.date_range
函数创建了一个包含一天时间范围的时间序列。然后,使用 strftime
方法以不同的格式输出时间的日期部分、小时部分、分钟部分、秒部分以及完整格式。
可以看到,通过格式化输出时间,可以以不同的形式展示时间的不同部分,满足我们的需求。
总结
本文介绍了 Pandas 中对时间和分钟的操作。通过示例代码,我们学习了如何创建时间、进行时间的加减运算以及格式化输出时间