पंडों के डेटाफ़्रेम में सूचियों की सूची में परिवर्तित करें


30

मैं उन सूचियों की एक सूची को बदलने की कोशिश कर रहा हूं जो निम्न प्रकार से पंडों के डेटाफ्रेम में दिखाई देती हैं

[['New York Yankees ', '"Acevedo Juan"  ', 900000, ' Pitcher\n'], 
['New York Yankees ', '"Anderson Jason"', 300000, ' Pitcher\n'], 
['New York Yankees ', '"Clemens Roger" ', 10100000, ' Pitcher\n'], 
['New York Yankees ', '"Contreras Jose"', 5500000, ' Pitcher\n']]

मैं मूल रूप से सरणी के प्रत्येक आइटम को पांडा डेटा फ्रेम में बदलने की कोशिश कर रहा हूं, जिसमें चार कॉलम हैं। पीडी के रूप में इसके लिए सबसे अच्छा तरीका क्या होगा। डेटाफ़्रेम मुझे वह नहीं देता जिसकी मुझे तलाश है।


स्टैक ओवरफ्लो में इस सवाल को देखें: stackoverflow.com/questions/..//-
keramat

जवाबों:


36
import pandas as pd

data = [['New York Yankees', 'Acevedo Juan', 900000, 'Pitcher'], 
        ['New York Yankees', 'Anderson Jason', 300000, 'Pitcher'], 
        ['New York Yankees', 'Clemens Roger', 10100000, 'Pitcher'], 
        ['New York Yankees', 'Contreras Jose', 5500000, 'Pitcher']]

df = pd.DataFrame.from_records(data)

4
आप इसके साथ थोड़ा और परिष्कृत कर सकते हैं: DataFrame.from_records (डेटा, कॉलम = ['टीम', 'प्लेयर', 'जो भी स्टेट-इज़-इज़', 'पोज़िशन')]
जुआन इग्नासियो गिल

1
क्या आयात को अधिक विशेष रूप से निर्दिष्ट करने का कोई तरीका है? उदाहरण के लिए, मैं यह निर्दिष्ट करना चाहता हूं कि DataFrame["Team"]प्रत्येक सबलिस्ट (यानी data[i][0]) के पहले आइटम DataFrame["Position"]को देखें और प्रत्येक सबलिस्ट (यानी ) के अंतिम आइटम को देखें data[i][-1]?
इवो

@Ivo: उपयोग columnsके पैरामीटर DataFrame.from_records
एमरे

14

एक बार आपके पास डेटा है:

import pandas as pd

data = [['New York Yankees ', '"Acevedo Juan"  ', 900000, ' Pitcher\n'], 
        ['New York Yankees ', '"Anderson Jason"', 300000, ' Pitcher\n'], 
        ['New York Yankees ', '"Clemens Roger" ', 10100000, ' Pitcher\n'], 
        ['New York Yankees ', '"Contreras Jose"', 5500000, ' Pitcher\n']]

आप डेटा ट्रांसपोज़िंग से डेटाफ़्रेम बना सकते हैं:

data_transposed = zip(data)
df = pd.DataFrame(data_transposed, columns=["Team", "Player", "Salary", "Role"])

दूसरा रास्ता:

df = pd.DataFrame(data)
df = df.transpose()
df.columns = ["Team", "Player", "Salary", "Role"]

5

आप इसे सीधे डेटा फ्रेम के रूप में सीधे परिभाषित कर सकते हैं:

import pandas as pd

data = [['New York Yankees', 'Acevedo Juan', 900000, 'Pitcher'], 
        ['New York Yankees', 'Anderson Jason', 300000, 'Pitcher'], 
        ['New York Yankees', 'Clemens Roger', 10100000, 'Pitcher'], 
        ['New York Yankees', 'Contreras Jose', 5500000, 'Pitcher']]

data = pd.DataFrame(data)

1
import pandas as pd

data = [['New York Yankees', 'Acevedo Juan', 900000, 'Pitcher'],
        ['New York Yankees', 'Anderson Jason', 300000, 'Pitcher'], 
        ['New York Yankees', 'Clemens Roger', 10100000, 'Pitcher'], 
        ['New York Yankees', 'Contreras Jose', 5500000, 'Pitcher']]

df = pd.DataFrame(data)

0

यह अब तक का सबसे सरल था:

import pandas as pd

data = [['New York Yankees', 'Acevedo Juan', 900000, 'Pitcher'], 
        ['New York Yankees', 'Anderson Jason', 300000, 'Pitcher'], 
        ['New York Yankees', 'Clemens Roger', 10100000, 'Pitcher'], 
        ['New York Yankees', 'Contreras Jose', 5500000, 'Pitcher']]

data = pd.DataFrame(data)

अब, यदि सूची की सूची (डेटा [0]) में कुंजियाँ पहली सूची में हैं, तो आप उन्हें डेटाफ़्रेम में कॉलम हेडर को इस तरह असाइन कर सकते हैं:

import pandas as pd

data = [['key1', 'key2', key3, 'key4'], 
    ['New York Yankees', 'Anderson Jason', 300000, 'Pitcher'], 
    ['New York Yankees', 'Clemens Roger', 10100000, 'Pitcher'], 
    ['New York Yankees', 'Contreras Jose', 5500000, 'Pitcher']]

data = pd.DataFrame(data[1:], columns=data[0])
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.