2012-08-04 22 views
17

मैं एक पांडा dataframe उद्देश्य यह है कि इस तरह दिखता है:कॉलम नाम और कॉलम मानों के साथ एक पांडा डेटाफ्रेम से सूची कैसे उत्पन्न करें?

one two three four five 
0 1 2  3  4  5 
1 1 1  1  1  1 

मैं सूचियों की एक सूची वस्तुओं जहां पहला आइटम स्तंभ लेबल है और शेष सूची मान स्तंभ डेटा मान रहे हैं उत्पन्न करने के लिए करना चाहते हैं:

nested_list = [['one', 1, 1] 
       ['two', 2, 1] 
       ['three', 3, 1] 
       ['four', 4, 1] 
       ['five', 5, 1]] 

मैं यह कैसे कर सकता हूं? सहायता के लिए धन्यवाद।

उत्तर

34

सरल तरीका शायद list(dt.T.itertuples()) (जहां dt आपका डेटाफ़्रेम है)। यह tuples की एक सूची उत्पन्न करता है।

+0

धन्यवाद! मुझे itertuples() के बारे में पता नहीं था। – turtle

+1

मुझे यह भी एहसास नहीं हुआ कि यह था ... - सुरुचिपूर्ण +1 –

+3

सूचियों की सूची नहीं है हालांकि tuples की सूची बनाता है – Joop

3

मेरा बेवकूफ दृष्टिकोण सूचियों की सूची के रूप में 'll' के साथ iteritems का उपयोग करेगा और एक सूची के रूप में।

df = DataFrame({'one':[1,1], 'two':[2,1], 'three':[3,1], 'four':[3,1] }) 

ll = [] 

for idx,row in df.iteritems(): 
    l = row.values.tolist() 
    l.insert(0,idx) 
    ll.append(l) 
9

@ ब्रेनबर्न उत्तर उपरोक्त उत्तर में प्रश्नों के बारे में सूची की सूची में tuples की एक सूची उत्पन्न नहीं करता है। मुझे डेटानेट्रो का उपयोग करके स्प्रेडशीड में डेटाफ्रेम लिखने में सक्षम होने के लिए विशेष रूप से सूचियों की एक सूची की आवश्यकता होती है। आप कर सकते हैं

[list(x) for x in dt.T.itertuples()] 

इस परिणाम के रूप में की जरूरत

5

सच पूछिये तो अगर आप नेस्टेड सूची (और नहीं tuples की एक सूची) चाहते पैदावार

df.values.tolist() 

: सूची समझ के साथ ऊपर के उदाहरण अनुकूलित क्योंकि df.values ​​एक numpy सरणी है। यह आपको अनुरोधों के अनुसार सूचियों की एक सूची देगा:

[[0.0001313652121930252, 3.5915356549999985e-05], 
[3.5915356549999985e-05, 0.00011634321240684215]] 
0

पुराना प्रश्न मुझे पता है, लेकिन यह इन अन्य उत्तरों की तुलना में मेरे लिए अधिक समझ में आता है।

यह आपके dataframe है:

df = pd.DataFrame({'one': [1, 1], 'three': [3, 1], 'four': [4, 1], 
      'five': [5, 1], 'two': [2, 1]}, 
      columns=['one', 'two', 'three', 'four', 'five']) 

यह करें:

df.T.reset_index().values.tolist() 

परिणाम

[['one', 1, 1], ['two', 2, 1], ['three', 3, 1], ['four', 4, 1], ['five', 5, 1]] 
संबंधित मुद्दे