比较 Pandas 中的行

我有一个看起来像这样的熊猫数据框:


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

我正在寻找一种有效的方法来做到这一点。谢谢!


潇湘沐
浏览 145回答 2
2回答

料青山看我应如是

我们可以尝试groupby+ rank,然后mapdf['Level']=df.groupby('ID').Price.rank().map({1:'low',2:'high'})dfOut[221]:   ID Type  Price Level0  A  one      7   low1  A  two      8  high2  B  one      9  high3  B  two      6   low

慕莱坞森

让我们试试duplicated:df['Level'] = (df.sort_values('Price').duplicated(['ID'])                 .map({True:'high', False:'low'})              )输出:  ID Type  Price Level0  A  one      7   low1  A  two      8  high2  B  one      9  high3  B  two      6   low
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python