Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Python

Python - แปลงรายการพจนานุกรมซ้อนกันเป็น DataFrame ของ Pandas

ข้อมูลจากแหล่งต่างๆ มักอยู่ในรูปแบบ JSON หรือ CSV ซึ่งแปลงเป็น list/dict ของ Python ได้ แต่เพื่อวิเคราะห์ด้วย Pandas ต้องแปลงเป็น DataFrame บทความนี้แสดงวิธีแปลง list ที่มี nested dictionary ให้เป็น DataPath แล้วใช้ pivot_table จัดรูปแบบใหม่

ตัวอย่างพื้นฐาน

import pandas as pd

data = [
    {
        "Fruit": [{"Price": 15.2, "Quality": "A"}, {"Price": 19, "Quality": "B"}, {"Price": 17.8, "Quality": "C"}],
        "Name": "Orange"
    },
    {
        "Fruit": [{"Price": 23.2, "Quality": "A"}, {"Price": 28, "Quality": "B"}],
        "Name": "Grapes"
    }
]

rows = []
for item in data:
    for row in item['Fruit']:
        row['Name'] = item['Name']
        rows.append(row)

df = pd.DataFrame(rows)
print(df)

ผลลัพธ์

   Price Quality     Name
0   15.2       A   Orange
1   19.0       B   Orange
2   17.8       C   Orange
3   23.2       A   Grapes
4   28.0       B   Grapes

การใช้ pivot_table

df_pivot = df.pivot_table(index='Name', columns='Quality', values='Price').reset_index()
print(df_pivot)

ผลลัพธ์ Pivot

Quality  Name    A     B     C
0       Grapes  23.2  28.0   NaN
1       Orange  15.2  19.0  17.8