2016-07-19 15 views

cevap

13

Peki zip(s,s.index) zamanda çalışan basitçe görünüyor!

+2

'liste olmalıdır (zip (s, s.index)) (Bunun yerine bir yineleyici list(s.items()) daha bir liste olarak çıktı almak istiyorsanız)' aksi takdirde python3 bir fermuar nesnesini almak –

4

Bir olasılık iteritems gelen endeks elemanları ve değerlerin sırasını takas etmektir:

res = [(val, idx) for idx, val in s.iteritems()] 

s = pd.Series([1, 2, 3], ['a', 'b', 'c']) 

Ben bazı iterable bir dizi, liste, dizi istiyorum DÜZENLEME: @ Divakar'ın cevabı yaklaşık 2 kat daha hızlıdır. Test için bir dizi rastgele dizge oluşturma:

N = 100000 
str_len = 4 
ints = range(N) 
strs = [None]*N 
for i in ints: 
    strs[i] = ''.join(random.choice(string.ascii_letters) for _ in range(str_len)) 
s = pd.Series(ints, strs) 

Zamanlamaları:

%timeit res = zip(s,s.index) 
>>> 100 loops, best of 3: 14.8 ms per loop 

%timeit res = [(val, idx) for idx, val in s.iteritems()] 
>>> 10 loops, best of 3: 26.7 ms per loop 
2

s.items() veya s.iteritems() bunu yapın.

İlgili konular