我有一个巨大的csv文件,里面充满了测量结果,我需要过滤什么,我很好奇这是最优雅,简短或Pythonic的方法,因为我脑海中浮现出的解决方案是对我有点野蛮:
必须有一种更好的方法。
下面以MWE为例进行演示:
# dict = {'a': [1,1,1,2,2,2,3,3,3], 'b': np.random.rand(9), 'c': np.random.rand(9)}
dict = {'a': [1, 1, 1, 2, 2, 2, 3, 3, 3],
'b': [0.44 , 0.21, 0.86, 0.79, 0.64, 0.97, 0.51, 0.47, 0.61],
'c': [0.94, 0.31, 0.78, 0.10, 0.29, 0.14, 0.66 , 0.61 , 0.43]
}
df = pd.DataFrame(dict)
具有更好可读性的数据框:
>>> df
a b c
0 1 0.44 0.94
1 1 0.21 0.31
2 1 0.86 0.78
3 2 0.79 0.10
4 2 0.64 0.29
5 2 0.97 0.14
6 3 0.51 0.66
7 3 0.47 0.61
8 3 0.61 0.43
我正在寻找一种获取数据框的方法,其中每个“ a”元素的每个元素仅保留“ b”值最小的行,其余的将被丢弃。在上面的MWE案例中是
a b c
1 1 0.21 0.31
4 2 0.64 0.29
7 3 0.47 0.61