Tạo DataFrame từ từ điển

Oct 14 2020

Tôi yêu cầu dữ liệu từ một bảng trong cơ sở dữ liệu và mỗi dòng đi kèm như một từ điển như sau:

{
    "timestamp" : 1234657890,
    "prices" : {
                   "AAA" : 111,
                   "BBB" : 222,
                    ...
                   "ZZZ" : 999
               }
}

Từ tất cả những dòng đó, tôi muốn tạo một khung dữ liệu như thế này:

Timestamp    AAA    BBB    ...   ZZZ
1234657890   111    222    ...   999
1234567891   110    223    ...   997
   ...
1324657899   123    208    ...  1024

Tôi cũng vậy :

rawData = database_request()
listPrices = []
for row in rawData
    tmp = {'timestamp': row['timestamp']}
    tmp.update({name : price for name,price in row['prices'].items()})
    listPrices.append(tmp)
df = pd.DataFrame(listePrices)

Vì vậy, tôi đã tự hỏi liệu có cách nào khác tốt hơn để làm điều này không?

Trả lời

3 hjpotter92 Oct 14 2020 at 17:43

Của bạn rawData(nên được đặt tên lý tưởng raw_data, python gợi ý một hướng dẫn kiểu để đặt tên cho các biến và hàm trong lower_snake_case) đã có trong cấu trúc danh sách. Bạn có thể thao tác điều này tại chỗ mà không cần phải xử lý toàn bộ tập dữ liệu theo cách thủ công.

for row in raw_data:
    row.update(row.pop("prices"))