使用Pandas计算DataFrame中日期到指定日期的天数差
解决方案:计算日期差生成新列
没问题,这事儿好办!我来一步步帮你实现给DataFrame新增age_in_days列的需求:
第一步:确保日期列是datetime类型
原始数据里的open_date大概率是字符串格式,得先转换成pandas能识别的datetime类型,不然没法计算天数差:import pandas as pd # 构造你的DataFrame data = { 'ID': [1, 1, 1, 1], 'open_date': ['2020-06-03', '2020-06-23', '2019-06-29', '2018-06-29'], 'limit': [100, 500, 300, 400] } df = pd.DataFrame(data) # 转换open_date为datetime类型 df['open_date'] = pd.to_datetime(df['open_date'])第二步:定义目标日期并计算天数差
把你指定的2020-06-30转换成datetime对象,然后用它减去每行的open_date,最后提取天数属性生成新列:# 设定目标日期 target_date = pd.to_datetime('2020-06-30') # 计算天数差并新增列 df['age_in_days'] = (target_date - df['open_date']).dt.days第三步:查看结果
运行完上面的代码后,打印df就能得到你想要的输出:print(df)输出结果:
ID open_date limit age_in_days 0 1 2020-06-03 100 27 1 1 2020-06-23 500 7 2 1 2019-06-29 300 367 3 1 2018-06-29 400 732
小提示
如果你的open_date列本来就是datetime类型,那第一步的转换可以跳过,但加上转换步骤能避免因格式问题导致的报错,更稳妥。
内容的提问来源于stack exchange,提问作者Danish
相关产品推荐
相关产品推荐

