【发布时间】:2022-12-01 07:33:13
【问题描述】:
我将一个包含大约 620k 行和 6 列的 .csv 文件加载到 jupyter notebook 中。 data 是这样的:
col_1 col_2 col_3 col_4 col_5
ID_1 388343 388684 T.45396D 2.400000e-03
ID_1 388343 388684 T.45708S 3.400000e-04
ID_1 388343 388684 T.48892G 2.200000e-10
ID_1 388343 388684 T.56898F 1.900000e-21
ID_1 388343 388684 T.64122D 2.300000e-04
我需要重建表,使 ID (col_1) 具有唯一性,最小值为 (col_5)。我所做的是:
for i in unique_col_1:
index = data[(data['col_1'] == i)].index
min_value = data.col_5.iloc[index].min()
index = data[ (data['col_1'] == i) & (data['col_5'] != min_value) ].index
data.drop(index, inplace=True)
但这太慢了,在我的机器上处理速度约为 6.5 it/s,而在 google colaboratory 上运行时为 8 it/s。
有没有更好的方法可以更快地做到这一点?
【问题讨论】: