我对sortby或最大的函数感到困惑。有人可以给我看看灯吗?在您的所有帮助下,新的和正在学习的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]})
答案 0 :(得分:1)
执行此操作的方法不止一种,但是我认为选择序数数据的“内置”方法很可能是nth()
。 Docs。
import pandas as pd
>>>df
State County value
0 TX TX1 1
1 TX TX1 2
2 TX TX1 3
3 LA LA1 1
4 LA LA1 2
5 LA LA1 3
6 LA LA1 4
7 MO MO1 1
8 MO MO1 4
gp = df.sort_values('value', ascending=False).groupby(['State', 'County']).nth([range(2)])
>>>gp
value
State County
LA LA1 4
LA1 3
MO MO1 4
MO1 1
TX TX1 3
TX1 2
要获取所需的输出表,请重置其索引。
>>>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
答案 1 :(得分:1)
您提到的protoc
:
nlargest
答案 2 :(得分:0)
groupby
tail
在sort_values
之后
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