如何选择数据帧中索引行前面的n行?

2024-04-19 01:06:07 发布

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

我有一个DataFrame,正在尝试选择一行(给定一个特定索引)和它前面的n行。你知道吗

我试过这样的方法:

last_10 = self.market_data.iloc[index:-10]

但这似乎给出了从index到数据帧末尾减去10行的所有内容。你知道吗

我希望返回index指定的行和它前面的10行


Tags: 数据方法self内容dataframedataindexmarket
2条回答

使用此选项:

n = 10
last_10 = self.market_data.iloc[index-n:index+1]

在对数组进行切片时,Python会返回直到最后一个索引为止的所有内容,因此需要添加一个索引来包含它。你知道吗

如果像DatetimeIndex这样的一般索引使用^{}^{}作为val的位置:

print (market_data)
            val
Date           
1900-01-01  2.0
1900-01-02  3.0
1900-01-03  5.1
1900-01-04  5.0
1900-01-05  6.0
1900-01-06  7.0
1900-01-07  3.0

n = 3
val = '1900-01-04'
pos = market_data.index.get_loc(val)
last_10 = market_data.iloc[pos-n+1:pos+1]
print (last_10)
            val
Date           
1900-01-02  3.0
1900-01-03  5.1
1900-01-04  5.0

如果RangeIndex-在索引4之前获取3个值,请使用^{}

print (market_data)
         Date  val
0  1900-01-01  2.0
1  1900-01-02  3.0
2  1900-01-03  5.1
3  1900-01-04  5.0
4  1900-01-05  6.0
5  1900-01-06  7.0
6  1900-01-07  3.0

n = 3
val = 4
last_10 = market_data.loc[val-n+1:val]
print (last_10)
         Date  val
2  1900-01-03  5.1
3  1900-01-04  5.0
4  1900-01-05  6.0

相关问题 更多 >