2014-09-29 29 views
23

मैं एक पांडा श्रृंखला sf है में एक पांडा श्रृंखला कन्वर्ट करने के लिए सबसे अच्छा तरीका है:अजगर, एक पांडा dataframe

email 
[email protected] [1.0, 0.0, 0.0] 
[email protected] [2.0, 0.0, 0.0] 
[email protected] [1.0, 0.0, 0.0] 
[email protected] [4.0, 0.0, 0.0] 
[email protected] [1.0, 0.0, 3.0] 
[email protected] [1.0, 5.0, 0.0] 

और मैंने इसे निम्नलिखित DataFrame को बदलने के लिए करना चाहते हैं:

index | email    | list 
_____________________________________________ 
0  | [email protected] | [1.0, 0.0, 0.0] 
1  | [email protected] | [2.0, 0.0, 0.0] 
2  | [email protected] | [1.0, 0.0, 0.0] 
3  | [email protected] | [4.0, 0.0, 0.0] 
4  | [email protected] | [1.0, 0.0, 3.0] 
5  | [email protected] | [1.0, 5.0, 0.0] 

मैं ऐसा करने का एक तरीका मिला, लेकिन मुझे संदेह है कि यह अधिक कुशल है:

df1 = pd.DataFrame(data=sf.index, columns=['email']) 
df2 = pd.DataFrame(data=sf.values, columns=['list']) 
df = pd.merge(df1, df2, left_index=True, right_index=True) 
+1

कैसे के बारे में 'pd.DataFrame ({ 'ईमेल': sf.index, 'सूची': sf.values})'? – EdChum

+0

यह काम कर रहा है, धन्यवाद @EdChum – woshitom

+0

मैं एक जवाब के रूप में पोस्ट करें? – EdChum

उत्तर

48

2 अस्थायी डीएफएस बनाने के बजाय आप बस पास कर सकते हैं

pd.DataFrame({'email':sf.index, 'list':sf.values}) 

तरीके एक df का निर्माण करने के बहुत सारे हैं, docs

+0

एक और बढ़िया विकल्प (, अक्ष = 1 [sf.index, sf.values]) '' – Lauren

20

to_frame (देखें):

निम्नलिखित श्रृंखला के साथ शुरू एक dict भीतर पैरामीटर DataFrame निर्माता का उपयोग कर के रूप में इन , df:

email 
[email protected] A 
[email protected] B 
[email protected] C 
dtype: int64 

मैं करने के लिए to_frame का उपयोग DataFrame को श्रृंखला में परिवर्तित:

df = df.rename(columns= {0: 'list'}) 
df.index.name = 'index' 

आपका DataFrame आगे के विश्लेषण के लिए तैयार है:

df = df.to_frame().reset_index() 

    email    0 
0 [email protected] A 
1 [email protected] B 
2 [email protected] C 
3 [email protected] D 

अब आप सभी की जरूरत स्तंभ नाम का नाम बदलें और सूचकांक स्तंभ नाम के लिए है।

अद्यतन: मैं सिर्फ this link जहां जवाब आश्चर्यजनक रूप से यहाँ मेरी के समान हैं भर में आया था।

+1

series_obj.to_frame() 'काम करता है अगर आपके श्रृंखला एक ही कुल्हाड़ियों' pd.concat है concat है! मैं इस वर्ग प्रकार ' 'आउटपुट करता हूं –

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