返回数据帧行

2024-06-16 13:54:20 发布

您现在位置:Python中文网/ 问答频道 /正文

enter image description here

我对Python还很陌生,我有一个小问题正在努力解决。我有一个来自csv文件的数据帧(附加图像),我需要从数据帧中返回与应用于特定列的条件相匹配的行。但是,这里的技巧是从过滤的数据帧返回前两行(一旦条件满足)。更具体地说,我需要返回“制裁”列的值为“制裁”的行以及此行前面的两行。有什么解决这个问题的“Python”方法吗?目前,我正在使用一个列表理解技术,这是非常缓慢的。一点帮助将不胜感激!在

另外,我还附上了我的资料图片。在


Tags: 文件csv数据方法图像列表技巧图片
1条回答
网友
1楼 · 发布于 2024-06-16 13:54:20

我想你想要的是shift

test = df['Sanctions']== 'Sanction' #create a true/false list of rows that = 'Sanction
test1 = test.shift(-1) #shift list by 1 to get previous row
test2 = test.shift(-2) #shift list by 2 to get 2nd previosu row

df[(test == True) |(test1==True) | (test2==True)] #select rows from df where any of test or test1 or test2 are true

我想这会给你你想要的。(尽管我个人认为不依赖于排序结果的方法会更好。)

相关问题 更多 >