2016-01-30 7 views
8

यहाँ कोड है कि मैं के साथ काम कर रहा हूँ है:अजगर अनुक्रमणः उत्पादन नेन

import pandas as pd

test3 = pd.Series([1,2,3], index = ['a','b','c']) 
test3 = test3.reindex(index = ['f','g','z']) 

तो मूल रूप से हर चीज ठीक है और test3 'एक' 'बी' 'सी' के एक सूचकांक है और मूल्य 1,2,3। लेकिन फिर जब मुझे reindex test3 मिल गया तो मुझे लगता है कि मेरे मान 1 2 3 खो गए हैं। ऐसा क्यों है? वांछित आउटपुट होगा:

f 1 
g 2 
z 3 
+0

[डॉक्स] (http://pandas.pydata.org/pandas-docs/stable/generated/pandas.Series.reindex.html#pandas.Series.reindex) इस व्यवहार पर स्पष्ट हैं: 'अनुरूप श्रृंखला वैकल्पिक भरने तर्क के साथ नई अनुक्रमणिका, पिछले इंडेक्स में कोई मूल्य नहीं रखने वाले स्थानों में एनए/एनएएन रखकर, यदि आप केवल इंडेक्स वैल्यू को ओवरराइट करना चाहते हैं तो 'test3.index = [' f ',' g ',' z '] ' – EdChum

+0

@EdChum तो मैं पहले के समान मूल्यों के साथ नई अनुक्रमणिका को भरने के बारे में कैसे जाउंगा? –

उत्तर

6

docs इस व्यवहार पर स्पष्ट कर रहे हैं:

वैकल्पिक भरने तर्क के साथ नए सूचकांक को सीरीज अनुरूप, स्थानों में एनए/NaN रखकर पिछले में कोई मूल्य नहीं होने सूचकांक

अगर आप सिर्फ तब सूचक मान ओवरराइट करना चाहते हैं:

In [32]: 
test3.index = ['f','g','z'] 

test3 
Out[32]: 
f 1 
g 2 
z 3 
dtype: int64 
+0

मैं इसे समझता हूं। मेरी समस्या यह है कि मेरे पास "डेटा" नामक एक बड़ा डेटाफ्रेम है और जब मैं ts = pd.Series (डेटा = डेटा ['नास्डैक कंपोजिट'], अनुक्रमणिका = डेटा ['दिनांक'] करता हूं) मुझे नैन का एक स्तंभ मिलता है जहां मैं मूल्यों की उम्मीद करेंगे। इसलिए मैंने डेटासेट डाले बिना पुनरुत्पादित परिणाम बनाने की कोशिश की। –

+0

फिर से यह रीइंडेक्सिंग जैसा ही है, यदि आप मौजूदा डेटा के आधार पर एक नई श्रृंखला बनाना चाहते हैं तो आपको श्रृंखला को फ़्लैट करना होगा: 'ts = pd.Series (डेटा = डेटा ['नास्डैक कंपोजिट']। मान, अनुक्रमणिका = डेटा ['तिथि']) ' – EdChum

+0

काम करेगा बहुत धन्यवाद, मैं पाइथन के लिए बहुत नया हूं इसलिए ".values" व्यवसाय ने मेरे लिए यह किया। –

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