在dataframe两列日期相减并且得到具体的月数实例 您所在的位置:网站首页 计算两个日期之间相隔月数m无效的原因是什么 在dataframe两列日期相减并且得到具体的月数实例

在dataframe两列日期相减并且得到具体的月数实例

2024-07-15 13:20| 来源: 网络整理| 查看: 265

要在DataFrame两列日期相减并且得到具体的月数,可以使用 pandas 库中的 pd.to_datetime 函数和 dt 属性。

首先,使用 pd.to_datetime 将日期字符串转为 datetime 类型。然后,使用 dt 属性获取日期的年、月信息,并计算相差的月数。

示例一:

假设有一个 DataFrame,其中包含了两列日期,分别为 start_date 和 end_date。我们想要计算这两个日期间相差的月数:

import pandas as pd # 创建示例 DataFrame df = pd.DataFrame({ 'start_date': ['2020-01-01', '2021-02-01', '2021-03-01'], 'end_date': ['2021-09-01', '2022-03-01', '2022-06-01'] }) # 将日期字符串转为 datetime 类型 df['start_date'] = pd.to_datetime(df['start_date']) df['end_date'] = pd.to_datetime(df['end_date']) # 计算相差的月数 df['months_difference'] = (df['end_date'].dt.year - df['start_date'].dt.year) * 12 + (df['end_date'].dt.month - df['start_date'].dt.month) print(df)

输出结果:

start_date end_date months_difference 0 2020-01-01 2021-09-01 20 1 2021-02-01 2022-03-01 13 2 2021-03-01 2022-06-01 15

示例二:

我们可以使用 pandas.DataFrame.apply() 方法,对 DataFrame 的每一行进行处理,以计算两列日期的月数差。

import pandas as pd # 创建示例 DataFrame df = pd.DataFrame({ 'start_date': ['2020-01-01', '2021-02-01', '2021-03-01'], 'end_date': ['2021-09-01', '2022-03-01', '2022-06-01'] }) # 将日期字符串转为 datetime 类型 df['start_date'] = pd.to_datetime(df['start_date']) df['end_date'] = pd.to_datetime(df['end_date']) # 定义函数,计算相差的月数 def month_difference(row): return (row['end_date'].year - row['start_date'].year) * 12 + (row['end_date'].month - row['start_date'].month) # 对每一行数据应用函数 df['months_difference'] = df.apply(month_difference, axis=1) print(df)

输出结果与示例一相同:

start_date end_date months_difference 0 2020-01-01 2021-09-01 20 1 2021-02-01 2022-03-01 13 2 2021-03-01 2022-06-01 15

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:在dataframe两列日期相减并且得到具体的月数实例 - Python技术站



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有