Pandas:按特征和索引进行分组并获取中值
我有一个如下所示的数据框:
df = pd.DataFrame({'id':list('abcde'),'latitude': [38.470628, 38.554155, 38.66937, 34.119578, 36.292307],'longitude': [-121.404586, -121.502341, -121.695325, -117.413791, -119.804074],
'flag': [1,1,1,1,0], 'idx': [[0,1,2],[0,1,2],[0,1,2],[3],[4]], 'saleprice_usd_per_sqf': [200, 300, 700, 350, 50]})
id latitude longitude flag idx saleprice result
0 a 38.470628 -121.404586 1 [0, 1, 2] 200 300
1 b 38.554155 -121.502341 1 [0, 1, 2] 300 300
2 c 38.669370 -121.695325 1 [0, 1, 2] 700 300
3 d 34.119578 -117.413791 1 [3] 350 350
4 e 36.292307 -119.804074 0 [4] 50 50
请帮助计算每个 id 的销售价格中位数(结果作为示例),通过索引 idx 按标志分组。
I have a dataframe that looks like this:
df = pd.DataFrame({'id':list('abcde'),'latitude': [38.470628, 38.554155, 38.66937, 34.119578, 36.292307],'longitude': [-121.404586, -121.502341, -121.695325, -117.413791, -119.804074],
'flag': [1,1,1,1,0], 'idx': [[0,1,2],[0,1,2],[0,1,2],[3],[4]], 'saleprice_usd_per_sqf': [200, 300, 700, 350, 50]})
id latitude longitude flag idx saleprice result
0 a 38.470628 -121.404586 1 [0, 1, 2] 200 300
1 b 38.554155 -121.502341 1 [0, 1, 2] 300 300
2 c 38.669370 -121.695325 1 [0, 1, 2] 700 300
3 d 34.119578 -117.413791 1 [3] 350 350
4 e 36.292307 -119.804074 0 [4] 50 50
Pls help to calculate median of saleprice (result as example) for each id, grouped by flag through indices idx.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
您的分组逻辑尚不清楚,但假设您想要每组 idx 的中位数:
NB。如果
idx
中的顺序并不重要,请使用frozenset
代替tuple
输出:
Your grouping logic is unclear, but assuming you want the median per group of
idx
:NB. if order in
idx
doesn't matter, usefrozenset
in place oftuple
output: