Python 熊猫数据帧-获取匹配行之前/之后的第n行
如何获取匹配行之前/之后的第n行Python 熊猫数据帧-获取匹配行之前/之后的第n行,python,pandas,dataframe,search,match,Python,Pandas,Dataframe,Search,Match,如何获取匹配行之前/之后的第n行 df_temp[df_temp.Date == pd.to_datetime(specific_date)] 您可以使用获取第一个匹配行的索引 idx = df_temp[df_temp.Date == pd.to_datetime(specific_date)].index[0] 然后您可以使用获取(idx-n)之前或之后(idx+n)的第n行 根据@Ruli的评论进行编辑: 如果我们想将其构建成一个健壮的解决方案,我们当然必须检查新索引idx+n是否在
df_temp[df_temp.Date == pd.to_datetime(specific_date)]
您可以使用获取第一个匹配行的索引
idx = df_temp[df_temp.Date == pd.to_datetime(specific_date)].index[0]
然后您可以使用获取(idx-n
)之前或之后(idx+n
)的第n行
根据@Ruli的评论进行编辑:
如果我们想将其构建成一个健壮的解决方案,我们当然必须检查新索引idx+n
是否在范围内
我们可以通过比较0
和len(df_temp)
来做到这一点
new_idx=idx+n
如果new\u idx>=0和new\u idx,如果n=5和idx为2怎么办?或者行数为10,idx为8,n=5。这种方法很好,但需要额外的检查以保持在范围内(负指数可以很好,只是从df的不正确的一面,但过高会导致崩溃)。我在编写答案时将此视为用户的职责,但在提供健壮的实现时,当然应该这样做。谢谢你的意见,@Ruli。
df_temp.iloc[idx+n]
new_idx = idx + n
if new_idx >= 0 and new_idx <= len(df_temp)-1:
df_temp.iloc[new_idx]
else:
print(f"Index {new_idx} is out of bounds for DataFrame of size {len(df_temp)}")