ข้อมูลจากแหล่งต่างๆ มักอยู่ในรูปแบบ 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