Pandas DataFrame如何获取两日期列最大差值对应的起止日期及行索引
Pandas获取日期差最大值对应行的实现方案
方案1:提取所有差值最大的行(适配多最大值场景,示例中索引1、4都会返回)
先计算length列的最大值,再做布尔筛选即可,代码如下:
# 计算日期差最大值 max_len = dss['length'].max() # 筛选所有符合条件的行,保留需要的日期字段 max_len_rows = dss[dss['length'] == max_len][['report_end_d', 'report_start_d']] # 如需提取对应索引列表,执行以下代码 max_index_list = max_len_rows.index.tolist()
运行后max_len_rows会直接输出所有最大差值行的结束日期、开始日期,max_index_list对应输出[1,4]。
方案2:仅提取第一个差值最大的行
如果不需要所有最大值行,仅要第一个匹配结果,直接用idxmax()方法即可:
# 获取第一个最大值对应的行索引 first_max_index = dss['length'].idxmax() # 提取对应行的两个日期字段 first_max_info = dss.loc[first_max_index, ['report_end_d', 'report_start_d']]
示例中执行后first_max_index结果为1,first_max_info会返回索引1对应的两个日期值。
补充说明
如果需要将输出的日期转换为指定格式的字符串,可在日期字段后追加.dt.strftime('你需要的格式'),例如转成年-月-日格式写法为dss['report_end_d'].dt.strftime('%Y-%m-%d')。
内容的提问来源于stack exchange,提问作者rra
相关产品推荐
相关产品推荐

