在熊猫数据框中按组过滤最小值的行

时间:2018-10-29 23:25:45

标签: python pandas group-by aggregate pandas-groupby

我刚刚过滤了一些数据,现在有一个.csv文件,但我只是注意到我只需要选择价格最低的行:

示例:

ORIGIN   | DESTINA. | PRICE
____________________________
BOG      | MAD      |  1500
BOG      | MAD      |  750
BOG      | MAD      |  1250
BOG      | MAD      |  1350
BOG      | MIA      |   450

所以在这个例子中,我只想得到第三和第六行:

ORIGIN   | DESTINA. | PRICE
____________________________
BOG      | MAD      | 750
BOG      | MIA      | 450

使用python,如何获得最终表?

1 个答案:

答案 0 :(得分:1)

$myArray = array( 'a','b','c','title1','d','e','f','title2','g','h','title3','i','title4','j','k' ); $newArray=[]; $ind=0; for($i=0;$i<count($myArray);$i++){ if(preg_match("/title/",$myArray[$i])==1){ $ind++; }else{ $newArray[$ind][]=$myArray[$i]; } } var_dump($newArray); + GroupBytransform一起使用:

min

这将使重复的分组最小值保持不变。如果您不想要保留重复项,则可以排序,然后删除重复项:

df = df[df['PRICE'] == df.groupby('ORIGIN')['PRICE'].transform('min')]