需求如下:根据某一列或多列进行分组,然后得到各个组中某个值最大的一行。
代码如下:
data=[["a",1,101],["b",1,201],["c",2,201],["d",1,301],["e",2,301]]
df=pd.DataFrame(data,columns=["A","B","C"],index=[1,3,5,7,9])
print(df)
# =============================================================================
# A B C
# 1 a 1 101
# 3 b 1 201
# 5 c 2 201
# 7 d 1 301
# 9 e 2 301
# =============================================================================
df_1=df.groupby("B").apply(lambda t:t[t.C==t.C.max()])
print(df_1)
# =============================================================================
# A B C
# B
# 1 7 d 1 301
# 2 9 e 2 301
# =============================================================================
以上,记录本人学习过程