在dataframe两列日期相减并且得到具体的月数实例 | 您所在的位置:网站首页 › 计算两个日期之间相隔月数m无效的原因是什么 › 在dataframe两列日期相减并且得到具体的月数实例 |
要在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 实验室设备网 版权所有 |