【发布时间】:2016-05-17 15:43:02
【问题描述】:
给定以下数据框:
import pandas as pd
df = pd.DataFrame({'COL1': ['A', 'A','A','A','B','B'],
'COL2' : ['AA','AA','BB','BB','BB','BB'],
'COL3' : [2,3,4,5,4,2],
'COL4' : [0,1,2,3,4,2]})
df
COL1 COL2 COL3 COL4
0 A AA 2 0
1 A AA 3 1
2 A BB 4 2
3 A BB 5 3
4 B BB 4 4
5 B BB 2 2
我希望尽可能高效地(即通过 groupby 和 lambda x 或更好)找到第 1 列和第 2 列的每个不同组的第 3 列和第 4 列的中位数。
想要的结果如下:
COL1 COL2 COL3 COL4 MEDIAN
0 A AA 2 0 1.5
1 A AA 3 1 1.5
2 A BB 4 2 3.5
3 A BB 5 3 3.5
4 B BB 4 4 3
5 B BB 2 2 3
提前致谢!
【问题讨论】:
-
到目前为止,只是这样:df['MEDIAN']=df.groupby(['COL1','COL2'])[['COL3','COL4']].transform(lambda x: x.median())
标签: python-3.x pandas