将列值作为索引来取值

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)

参考:

https://stackoverflow.com/questions/17071871/how-do-i-select-rows-from-a-dataframe-based-on-column-values

posted @   C羽言  阅读(39)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· AI技术革命,工作效率10个最佳AI工具
点击右上角即可分享
微信分享提示