📅  最后修改于: 2023-12-03 15:26:08.549000             🧑  作者: Mango
Python 中的 pandas 库提供了 DataFrame 数据结构,可用于存储和操作表格数据。 当数据框(DataFrame)中包含日期列时,我们可能需要将日期中的年份、月份、日等信息提取出来进行特定操作。本文将介绍如何对数据框中的两个日期进行子结构。
import pandas as pd
df = pd.DataFrame({
'起始日期': ['2021-01-01', '2021-03-01', '2021-05-01'],
'终止日期': ['2021-03-15', '2021-07-01', '2021-09-01']
})
我们将使用上述数据框中的 '起始日期' 和 '终止日期' 列来演示如何对两个日期进行子结构。
Pandas 通过时间序列来处理日期和时间。标准的 Pandas 时间序列是 DatetimeIndex,可以通过将日期时间列转换为时间序列来进行处理。
date_cols = ['起始日期', '终止日期']
for col in date_cols:
df[col] = pd.to_datetime(df[col])
上述代码将 '起始日期' 和 '终止日期' 列转换为 Pandas 时间序列。
Pandas 中的时间序列提供了多种方法来提取日期子结构,例如年份、月份、日等,本文将介绍如何使用 Pandas 中的 dt 属性提取子结构。
df['起始年份'] = df['起始日期'].dt.year
df['终止年份'] = df['终止日期'].dt.year
上述代码将 '起始日期' 和 '终止日期' 中的年份分别存储到新的列 '起始年份' 和 '终止年份' 中。
df['起始月份'] = df['起始日期'].dt.month
df['终止月份'] = df['终止日期'].dt.month
上述代码将 '起始日期' 和 '终止日期' 中的月份分别存储到新的列 '起始月份' 和 '终止月份' 中。
df['起始日'] = df['起始日期'].dt.day
df['终止日'] = df['终止日期'].dt.day
上述代码将 '起始日期' 和 '终止日期' 中的日分别存储到新的列 '起始日' 和 '终止日' 中。
通过使用 Pandas 中的时间序列和 dt 属性,我们可以轻松提取数据框中的日期子结构,例如年、月、日等信息。这对于对日期进行特定操作和分析非常有用。
完整代码如下:
import pandas as pd
# 创建数据框
df = pd.DataFrame({
'起始日期': ['2021-01-01', '2021-03-01', '2021-05-01'],
'终止日期': ['2021-03-15', '2021-07-01', '2021-09-01']
})
# 将日期列转换为时间序列
date_cols = ['起始日期', '终止日期']
for col in date_cols:
df[col] = pd.to_datetime(df[col])
# 提取年份子结构
df['起始年份'] = df['起始日期'].dt.year
df['终止年份'] = df['终止日期'].dt.year
# 提取月份子结构
df['起始月份'] = df['起始日期'].dt.month
df['终止月份'] = df['终止日期'].dt.month
# 提取日子结构
df['起始日'] = df['起始日期'].dt.day
df['终止日'] = df['终止日期'].dt.day
print(df)
输出结果如下:
起始日期 终止日期 起始年份 终止年份 起始月份 终止月份 起始日 终止日
0 2021-01-01 2021-03-15 2021 2021 1 3 1 15
1 2021-03-01 2021-07-01 2021 2021 3 7 1 1
2 2021-05-01 2021-09-01 2021 2021 5 9 1 1