pandas 快速处理 date_time 日期格式方法

  • Post category:Python

下面是对于“pandas快速处理date_time日期格式方法”的完整攻略:

1. 什么是date_time类型

date_timepandas的一种时间序列数据类型,可以对时间序列数据进行统计、分析、处理。date_time类型以ISO8601标准表示时间和日期,可表示一个时间区间内的连续时间序列。

在pandas中,date_time类型的序列经常被用来作为时间序列分析中的时间索引,同时也可以用这个索引来进行相应的时间戳分析。

2. 日期格式化

日期格式化是处理日期中最繁琐的一部分工作。 pandas提供了各种方法将日期格式化为我们所需的格式。

2.1. 将字符串转化为date_time

datetime.datetime.strptime()方法中,可以用各种方式将日期格式化输入。 在下面的示例中,我们创建一个date_time类型的对象,其值是从字符串格式的日期构建而来的:

import datetime

date = "2022-01-01"
mydate = datetime.datetime.strptime(date, "%Y-%m-%d")
print("mydate is:", mydate)

上面的代码输出结果是:mydate is: 2022-01-01 00:00:00

2.2. 将date_time转化为字符串

date_time.strftime()方法中,可以用各种方式将date_time格式化输出。

在下面的示例中,我们创建一个date_time类型的对象,其值是从当前日期构建而来的。然后我们将其转化为一个字符串,格式为“%Y-%m-%d %H:%M:%S”:

import datetime

now = datetime.datetime.now()
str_now = now.strftime("%Y-%m-%d %H:%M:%S")
print("str_now is:", str_now)

上面的代码输出结果是一个字符串类型的时间戳,格式为“年-月-日 小时:分钟:秒钟”。

3. 精确到小时(H)的时间分解

使用pandas,可以从时间序列中抽取出“年”、“月”、“日”、“时”等具体的时间信息,并用这些信息进行各种计算和分析。例如,我们通过下面示例中的代码可以将一个date_time类型的时间序列拆分出“年”、“月”、“日”、“时”等信息:

import pandas as pd

# 构建日期序列
mydates = pd.date_range("2022-01-01 00:00:00", "2022-01-02 23:59:59", freq="H")

data = {"date": mydates}
df = pd.DataFrame(data)

# 将日期时间拆成年、月、日、小时
df['year'] = pd.DatetimeIndex(df['date']).year
df['month'] = pd.DatetimeIndex(df['date']).month
df['day'] = pd.DatetimeIndex(df['date']).day
df['hour'] = pd.DatetimeIndex(df['date']).hour

print(df.head())

上面的代码输出结果显示了一个包括“date”、“year”、“month”、“day”和“hour”的表格,它们分别是从一个date_time类型的序列中解析出来的。

4. 精确到天(D)的时间分解

对于时间序列里以天为单位的数据(的展示和计算),我们可以使用date_time类型的day属性。以下,我们将展示如何用pandas从date_time类型中抽取出“年”、“月”、“日”的信息:

import pandas as pd

yourdates = ["2022-01-01",
             "2022-01-02",
             "2022-01-03",
             "2022-01-04"]

data = {"date": yourdates}

df = pd.DataFrame(data)

# 将日期时间拆成年、月、日
df['year'] = pd.DatetimeIndex(df['date']).year
df['month'] = pd.DatetimeIndex(df['date']).month
df['day'] = pd.DatetimeIndex(df['date']).day


print(df.head())

上面的代码输出的结果是一个包括“date”、“year”、“month”和“day”的表格,其中三个子列对应的是输入序列的“年”、“月”和“日”。

5.总结

pandas已经成为了数据分析中重要的工具和模块之一,特别是在常用的金融数据分析和运筹学中。掌握好date_time格式化方法,对于完整的数据分析流程具有重要的意义。