我有一個巨大的數據幀(〜10,000,000線),看起來像這樣:熊貓:加快最小值提取
import pandas as pd
import numpy as np
col1 = ['A', 'C', 'D', 'D', 'D']
col2 = ['B', 'A', 'B', 'C', 'A']
col3 = [14, 36, 5, 12, 96]
df = pd.DataFrame(np.column_stack([col1, col2, col3]),
columns=['col1','col2','col3'])
df['col3'] = df['col3'].astype(int)
col1 col2 col3
0 A B 14
1 C A 36
2 D B 5
3 D C 12
4 D A 96
我想找到與每一個獨特的長期(A,B最小值, C,d):
A B 14
D B 5
C D 12
D B 5
我嘗試以下,但它的速度太慢:
for i in ['A', 'B', 'C', 'D']:
dm = df.loc[(df['col1'] == i) | (df['col2'] == i)]
print dm.ix[dm['col3'].idxmin()]
有什麼建議?
@dcirillo如果您對此感到滿意,最好接受答案並回復回答者並表示問題已得到滿意回答 – JohnE
@dcirillo請不要回答這個問題,因爲您說它已經完成你的要求。謝謝你的評論是不允許的,只接受是。我刪除了你的評論。 –