You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何获取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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.14 07:40:37