首页 > 解决方案 > 从熊猫数据框中的用户输入变量中获取上下N行

问题描述

所以我试图实现这一点,我在 pandas 中有数据框,并给出了一个变量,用户在其中输入一个数字,如果该数字与数据框中的索引号匹配,我想在数据上方显示 3 行,在数据下方显示 3 行数据框。

我有什么数据

user_number = int(input('Input Number : '))
print(user_number)

             Country Result
        0      China      N
        1      India      N
        2     Brazil      Y
        3  Indonesia      N
        4     Bhutan      N
        5     Mexico      Y
        6     Canada      N
        7       Peru      N
        8   Honduras      N
        9     Bhutan      N

例如,如果用户输入 5,我希望显示第 2、3、4 行和第 6、7、8 行

我想达到什么结果:

2     Brazil      Y
3  Indonesia      N
4     Bhutan      N
5     Mexico      Y
6     Canada      N
7       Peru      N
8   Honduras      N

标签: pythonpandas

解决方案


pd.concat与 一起使用df.iloc

user_number = int(input('Input Number : '))
print(pd.concat([df.iloc[user_number-3:user_number],df.iloc[user_number:user_number+4]]))

我的 RAW 尝试 ;-)

>>> import numpy as np
>>> import pandas as pd
>>> df = pd.DataFrame({'A': np.arange(10)})
>>> user_number = int(input('Input Number : '))
Input Number : 5
>>> pd.concat([df.iloc[user_number-3:user_number],df.iloc[user_number:user_number+4]])
   A
2  2
3  3
4  4
5  5
6  6
7  7
8  8

推荐阅读