Liste listesini Pandas Dataframe'e dönüştürme


30

Aşağıdakine benzeyen bir liste listesini Pandas Dataframe'e dönüştürmeye çalışıyorum

[['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']]

Temel olarak dizideki her öğeyi dört sütunlu bir panda veri çerçevesine dönüştürmeye çalışıyorum. Pd.Dataframe olarak bu konuda en iyi yaklaşım ne olurdu bana aradığımı vermez.


Bu soruya yığınlı taşma bakın: stackoverflow.com/questions/.../…
keramat

Yanıtlar:


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 (data, column = ['Team', 'Player', 'her ne olursa olsun-stat', 'pozisyon']) ile biraz daha da daraltabilirsiniz)
Juan Ignacio Gil

1
İthalatı daha belirgin bir şekilde belirtmenin bir yolu var mı? Örneğin ben belirtmek istiyorum DataFrame["Team"]her alt liste ilk öğeye başvurmalıdır (yani data[i][0]) ve DataFrame["Position"](yani her alt liste son öğeye başvurmak için data[i][-1])?
Ivo

@Ivo: Kullanım columnsparametre DataFrame.from_records .
Emre

14

Verileri aldıktan sonra:

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']]

Veri aktarımından dataframe oluşturabilirsiniz:

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

Diğer yol:

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

5

Bunu doğrudan aşağıdaki gibi bir veri çerçevesi olarak tanımlayabilirsiniz:

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

Bu, bugüne kadarki en basit olanıydı:

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)

Artık, anahtarlar listeler listesindeki ilk liste ise (veri [0]), bunları aşağıdaki gibi veri çerçevesindeki sütun başlıklarına atayabilirsiniz:

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])
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.