首页 > 解决方案 > 如何在熊猫数据框中选择最小值也保存我的字符串数据

问题描述

我有一个熊猫数据框,列是字符串和值,如果我使用'groupby',我会丢失我的数据,如何编写代码来保存我的数据?

print(df)

tconst title bool   id  pair
t01    Blow  True   1   1
t02    Blow  False  1   4
t03    Fast  TRUE   2   2
t04    Fast  FALSE  2   2
t05    Storm True   3   9  

如果遇到相同的'id',我想在'pair'处选择最小值(例如:id = 1),如果遇到相同的'id'但'pair'值相同,我想保存所有它们(例如:id =2)。

out:
tconst title  bool   id  pair
t01    Blow   True   1   1
t03    Fast   TRUE   2   2
t04    Fast   FALSE  2   2
t05    Storm  True   3   9  

标签: pythonpython-3.xpandasdataframemin

解决方案


使用, groupby, transformwithmin来查找组内的最小值,然后创建一个布尔系列来进行布尔索引:

df[df['pair'] == df.groupby('id')['pair'].transform('min')]

输出:

  tconst  title   bool  id  pair
0    t01   Blow   True   1     1
2    t03   Fast   True   2     2
3    t04   Fast  False   2     2
4    t05  Storm   True   3     9

推荐阅读