如何根据 pandas Dataframe 中的给定索引获取接下来的 5 条记录
How to fetch next 5 records based on given index in pandas Dataframe
我想获取特定索引之后的下 5 条记录。
例如,这是我的数据框:
Id Name code
1 java 45
2 python 78
3 c 65
4 c++ 25
5 html 74
6 css 63
7 javascript 45
8 php 44
9 Ajax 88
10 jQuery 92
当我将索引值提供为 3
时,代码必须从 3
中获取接下来的 5 个值。所以结果应该是这样的:
Id Name code
3 c 65
4 c++ 25
5 html 74
6 css 63
7 javascript 45
我不知道该怎么做。我的代码无法正常工作。
我正在使用此代码获取接下来的 5 条记录:
data = df.iloc[df.index.get_loc(indexid):+5]
我会做:
idx = df.reset_index()['Id'].eq(8).idxmax()
ranges = np.r_[idx:idx+5] % len(df)
df.iloc[ranges]
输出:
Id Name code
7 8 php 44
8 9 Ajax 88
9 10 jQuery 92
0 1 java 45
1 2 python 78
你很接近,还需要将 5
添加到第一个位置,所以使用:
#if Id is not index
#df = df.set_index('Id')
p = df.index.get_loc(3)
df = df.iloc[p:p+5]
print (df)
Name code
Id
3 c 65
4 c++ 25
5 html 74
6 css 63
7 javascript 45
修正你的代码
idx=df.index.get_indexer([3])[0]
df.iloc[idx:idx+5]
Out[9]:
Name code
Id
3 c 65
4 c++ 25
5 html 74
6 css 63
7 javascript 45
我想获取特定索引之后的下 5 条记录。
例如,这是我的数据框:
Id Name code
1 java 45
2 python 78
3 c 65
4 c++ 25
5 html 74
6 css 63
7 javascript 45
8 php 44
9 Ajax 88
10 jQuery 92
当我将索引值提供为 3
时,代码必须从 3
中获取接下来的 5 个值。所以结果应该是这样的:
Id Name code
3 c 65
4 c++ 25
5 html 74
6 css 63
7 javascript 45
我不知道该怎么做。我的代码无法正常工作。
我正在使用此代码获取接下来的 5 条记录:
data = df.iloc[df.index.get_loc(indexid):+5]
我会做:
idx = df.reset_index()['Id'].eq(8).idxmax()
ranges = np.r_[idx:idx+5] % len(df)
df.iloc[ranges]
输出:
Id Name code
7 8 php 44
8 9 Ajax 88
9 10 jQuery 92
0 1 java 45
1 2 python 78
你很接近,还需要将 5
添加到第一个位置,所以使用:
#if Id is not index
#df = df.set_index('Id')
p = df.index.get_loc(3)
df = df.iloc[p:p+5]
print (df)
Name code
Id
3 c 65
4 c++ 25
5 html 74
6 css 63
7 javascript 45
修正你的代码
idx=df.index.get_indexer([3])[0]
df.iloc[idx:idx+5]
Out[9]:
Name code
Id
3 c 65
4 c++ 25
5 html 74
6 css 63
7 javascript 45