我有一个熊猫数据框,看起来像这样:
df = pd.DataFrame( [ ['A','one',7], ['A','two',8], ['B','one',9], ['B','two',6]], columns=['ID', 'Type', 'Price'])
ID Type Price
0 A one 7
1 A two 8
2 B one 9
3 B two 6
我想添加一列,该列是每个ID之间比较“价格”的结果。所以结果看起来像这样:
ID Type Price Level
0 A one 7 low
1 A two 8 high
2 B one 9 high
3 B two 6 low
我正在寻找一种有效的方法来做到这一点。谢谢!
我们可以尝试groupby
+ rank
,然后map
df['Level']=df.groupby('ID').Price.rank().map({1:'low',2:'high'})
df
Out[221]:
ID Type Price Level
0 A one 7 low
1 A two 8 high
2 B one 9 high
3 B two 6 low
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句