Chuyển đổi danh sách các danh sách thành Dữ liệu Pandasrame


30

Tôi đang cố gắng chuyển đổi một danh sách các danh sách giống như sau đây thành một Dataframe Pandas

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

Về cơ bản, tôi đang cố gắng chuyển đổi từng mục trong mảng thành khung dữ liệu gấu trúc có bốn cột. Điều gì sẽ là cách tiếp cận tốt nhất cho điều này vì pd.Dataframe không hoàn toàn cho tôi những gì tôi đang tìm kiếm.


xem câu hỏi này trong stack overflow: stackoverflow.com/questions/.../ từ
keramat

Câu trả lời:


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
Bạn có thể tinh chỉnh thêm một chút với: DataFrame.from_records (data, cột = ['Team', 'Player', 'anything-stat-is-that', 'location'])
Juan Ignacio Gil

1
Có cách nào để xác định nhập khẩu cụ thể hơn? Ví dụ: tôi muốn chỉ định rằng DataFrame["Team"]phải tham khảo mục đầu tiên của mỗi danh sách phụ (tức là data[i][0]) và DataFrame["Position"]để tham khảo mục cuối cùng của mỗi danh sách phụ (tức là data[i][-1])?
Ivo

@Ivo: Sử dụng columnstham số của DataFrame.from_records .
Emre

14

Khi bạn có dữ liệu:

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

Bạn có thể tạo khung dữ liệu từ việc hoán chuyển dữ liệu:

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

Cách khác:

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

5

Bạn chỉ có thể định nghĩa trực tiếp nó dưới dạng khung dữ liệu như sau:

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

Điều này cho đến nay là đơn giản nhất:

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)

bây giờ, nếu các khóa là danh sách đầu tiên trong danh sách danh sách (dữ liệu [0]), bạn có thể gán chúng cho các tiêu đề cột trong khung dữ liệu như vậy:

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])
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.