【发布时间】:2016-07-04 15:55:14
【问题描述】:
我的数据可以很容易地转换成看起来像这样的 pandas 数据框:
import pandas as pd
data={'a':["t", "g"]*9,'b' [1,2,3,4,5,6,1,2,3,4,5,6,1,2,3,4,5,6],'distance':[10, 15, 290, 300, 315, 320, 350, 360, 10, 25, 225, 240, 325, 335, 365, 205, 15, 35]}
df=pd.DataFrame(data,columns=['a','b','distance'])
print df
a b distance
0 t 1 10
1 g 2 15
2 t 3 290
3 g 4 300
4 t 5 315
5 g 6 320
6 t 1 350
7 g 2 360
8 t 3 10
9 g 4 25
10 t 5 225
11 g 6 240
12 t 1 325
13 g 2 335
14 t 3 365
15 g 4 205
16 t 5 15
17 g 6 35
我想删除“b”列中具有相同值的所有行,但保留“距离”列中具有最小值的一行。在这种情况下,我想擦除“距离”大于 200 的所有行,以便在此示例中仅保留索引为 0、1、8、9、16、17 的行。最后,所有的行都应该有不同的“b”值和最小的“距离”。它看起来像:
a b distance
0 t 1 10
1 g 2 15
2 t 3 10
3 g 4 25
4 t 5 15
5 g 6 35
我怎么能这样做?
【问题讨论】: