2016-07-19 12 views
6

पर पांडा श्रृंखला को कन्वर्ट करने के लिए कैसे करें I श्रृंखला को इसके मानकों के साथ अपने सूचकांक के एक टुपल में बदलने के लिए एक प्रभावी तरीका ढूंढ रहा हूं।इंडेक्स और मूल्य

[(1, 'a'), (2, 'b'), (3, 'c')] 

उत्तर

13

खैर यह बस लगता है zip(s,s.index) भी काम करता है!

+2

'सूची होना चाहिए (जिप (रों, s.index)) (यदि आप कोई इटरेटर list(s.items()) की तुलना में एक सूची के रूप में उत्पादन प्राप्त करना चाहते हैं)' अन्यथा आप python3 में एक ज़िप वस्तु मिल –

4

एक संभावना यह iteritems से सूचकांक तत्वों और मानों का क्रम स्वैप करने के लिए है:

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

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

मैं एक सरणी, सूची, श्रृंखला, कुछ iterable चाहते संपादित करें: @ दिवाकर का जवाब 2 के कारक से तेज़ है। परीक्षण के लिए यादृच्छिक तारों की श्रृंखला बनाना:

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) 

समय:

%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() या s.iteritems() ऐसा करें।

संबंधित मुद्दे