Python 熊猫分组后如何选择前2个值?

Python 熊猫分组后如何选择前2个值?,python,pandas,Python,Pandas,我被最糟糕或最庞大的函数弄糊涂了。谁能给我看看灯吗?在您的帮助下学习新的Python 当前数据集: df = pd.DataFrame({'State':['TX','TX','TX','LA','LA','LA','LA','MO','MO'], 'County':['TX1','TX1','TX1','LA1','LA1','LA1','LA1','MO1','MO1'], 'value':[1,2,3,1,2,3,

我被最糟糕或最庞大的函数弄糊涂了。谁能给我看看灯吗?在您的帮助下学习新的Python

当前数据集:

df = pd.DataFrame({'State':['TX','TX','TX','LA','LA','LA','LA','MO','MO'],
                   'County':['TX1','TX1','TX1','LA1','LA1','LA1','LA1','MO1','MO1'],
                   'value':[1,2,3,1,2,3,4,1,4]})
所需的输出数据集如下所示:

df1 = pd.DataFrame({'State':['TX','TX','LA','LA','MO','MO'],
                   'County':['TX1','TX1','LA1','LA1','MO1','MO1'],
                   'value':[3,2,4,3,4,1]})

groupby
tail
after
sort\u值

df.sort_values('value').groupby(['State','County']).tail(2)
Out[179]: 
  County State  value
7    MO1    MO      1
1    TX1    TX      2
2    TX1    TX      3
5    LA1    LA      3
6    LA1    LA      4
8    MO1    MO      4

groupby
tail
after
sort\u值

df.sort_values('value').groupby(['State','County']).tail(2)
Out[179]: 
  County State  value
7    MO1    MO      1
1    TX1    TX      2
2    TX1    TX      3
5    LA1    LA      3
6    LA1    LA      4
8    MO1    MO      4

实现这一点的方法不止一种,但我认为选择顺序数据的“内置”方法很可能是
nth()

要获取所请求的输出表,请重置其索引

>>>gp.reset_index()
  State County  value
0    LA    LA1      4
1    LA    LA1      3
2    MO    MO1      4
3    MO    MO1      1
4    TX    TX1      3
5    TX    TX1      2

实现这一点的方法不止一种,但我认为选择顺序数据的“内置”方法很可能是
nth()

要获取所请求的输出表,请重置其索引

>>>gp.reset_index()
  State County  value
0    LA    LA1      4
1    LA    LA1      3
2    MO    MO1      4
3    MO    MO1      1
4    TX    TX1      3
5    TX    TX1      2

正如您所提到的,这里有一个最大的:

df.groupby(['State', 'County']).value.nlargest(2).reset_index()

正如您所提到的,这里有一个最大的:

df.groupby(['State', 'County']).value.nlargest(2).reset_index()