Python 熊猫分组后如何选择前2个值?
我被最糟糕或最庞大的函数弄糊涂了。谁能给我看看灯吗?在您的帮助下学习新的Python 当前数据集: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,
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
aftersort\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
aftersort\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()