将列值作为索引来取值
input
import pandas as pd
import numpy as np
d={'trade_date':['2021-08-10','2021-08-11','2021-08-12','2021-08-13','2021-08-14','2021-08-15','2021-08-16','2021-08-17','2021-08-18','2021-08-19','2021-08-20',],'price':[2,12,8,10,11,18,7,19,9,8,12],'cond':[True,False,True,False,True,False,True,False,True,True,True]}
df = pd.DataFrame(d)
df.index=pd.to_datetime(df.trade_date)
df['A']=df.index.where(df['cond'])
df['A']=df['A'].ffill()
df.to_clipboard()
df
方法一
df['expected'] = df['A'].map(df['price'])
#182 µs ± 1.32 µs per loop (mean ± std. dev. of 7 runs, 10000 loops each)
方法二
df['expected'] =df['price'].where(df.index==df['A']).ffill()
#336 µs ± 7.37 µs per loop (mean ± std. dev. of 7 runs, 1000 loops each)
方法三
df['expected'] =df['price'].loc[df.index ==df['A']]
df['expected'] =df['ab'] .ffill()
#355 µs ± 5.49 µs per loop (mean ± std. dev. of 7 runs, 1000 loops each)
参考:
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· AI技术革命,工作效率10个最佳AI工具