如何获取DataFrame指定条件的索引值并计算索引日期差值?
解决方案
核心思路
你拿到的d2是带索引的Series,它的索引就是你需要的Timestamp类型日期,只需提取这个索引的对应元素,就能和d1计算日期差。
具体实现代码
方式一:直接获取符合条件的索引(推荐)
跳过生成Series的步骤,直接提取满足条件的索引值:
import pandas as pd df1 = pd.DataFrame({"date": ['2021-3-22', '2021-3-23', '2021-3-24', '2021-3-25', '2021-3-26'], "x": ['nan', 1, 'nan', 'nan', 'nan' ]}) df1['date'] = pd.to_datetime(df1['date']) df1.set_index('date', inplace=True) d1 = df1.index[-1] # 直接获取x=1对应的索引,得到Timestamp对象 d2 = df1[df1.x == 1].index[0] # 计算天数差 diff_days = (d1 - d2).days print(diff_days) # 输出3
方式二:从已有的d2 Series中提取索引
如果你已经生成了d2这个Series,直接提取它的索引即可:
# 已有的d2 Series d2 = df1.x[df1.x == 1] # 提取索引的第一个元素 d2_timestamp = d2.index[0] diff_days = (d1 - d2_timestamp).days print(diff_days) # 输出3
补充说明
你的x列包含字符串'nan',可以先转为数值型NaN更规范,避免类型问题:
df1['x'] = pd.to_numeric(df1['x'], errors='coerce')
之后筛选df1.x == 1的逻辑依然有效。
内容的提问来源于stack exchange,提问作者Champion
相关产品推荐
相关产品推荐

