การเพิ่มข้อมูลใหม่เข้าไปใน DataFrame ที่สร้างไว้แล้ว สามารถทำได้โดยใช้เมธอด append() (หมายเหตุ: ใน Pandas เวอร์ชันใหม่แนะนำให้ใช้ pd.concat() แทน เนื่องจาก append() ถูก deprecated แล้ว)
ขั้นตอนการทำงาน
1. สร้าง DataFrame เริ่มต้น
import pandas as pd
dataFrame = pd.DataFrame({
"Car": ['BMW', 'Audi', 'XUV', 'Lexus', 'Volkswagen'],
"Place": ['Delhi', 'Bangalore', 'Pune', 'Chandigarh', 'Mumbai'],
"Units": [100, 150, 50, 110, 90]
})
2. สร้างรายการ Dictionary ที่ต้องการเพิ่ม
new_data = [
{'Car': 'Mustang', 'Place': 'Hyderabad', 'Units': 60},
{'Car': 'Tesla', 'Place': 'Kerala', 'Units': 30},
{'Car': 'RollsRoyce', 'Place': 'Punjab', 'Units': 70},
{'Car': 'Bentley', 'Place': 'Gujarat', 'Units': 80}
]
3. เพิ่มข้อมูลด้วย append() (รุ่นเก่า)
# วิธีเก่า (deprecated ใน Pandas 2.0+)
dataFrame = dataFrame.append(new_data, ignore_index=True, sort=False)
4. วิธีแนะนำใหม่: ใช้ pd.concat()
# แปลง list of dicts เป็น DataFrame ก่อน
new_df = pd.DataFrame(new_data)
# รวม DataFrame ทั้งสอง
dataFrame = pd.concat([dataFrame, new_df], ignore_index=True)
โค้ดตัวอย่างสมบูรณ์ (ใช้ concat)
import pandas as pd
# DataFrame เดิม
dataFrame = pd.DataFrame({
"Car": ['BMW', 'Audi', 'XUV', 'Lexus', 'Volkswagen'],
"Place": ['Delhi', 'Bangalore', 'Pune', 'Chandigarh', 'Mumbai'],
"Units": [100, 150, 50, 110, 90]
})
print("DataFrame เดิม:\n", dataFrame)
# ข้อมูลใหม่
new_data = [
{'Car': 'Mustang', 'Place': 'Hyderabad', 'Units': 60},
{'Car': 'Tesla', 'Place': 'Kerala', 'Units': 30},
{'Car': 'RollsRoyce', 'Place': 'Punjab', 'Units': 70},
{'Car': 'Bentley', 'Place': 'Gujarat', 'Units': 80}
]
print("\nข้อมูลใหม่:\n", new_data)
# เพิ่มข้อมูลด้วย concat (วิธีแนะนำ)
new_df = pd.DataFrame(new_data)
dataFrame = pd.concat([dataFrame, new_df], ignore_index=True)
print("\nDataFrame หลังเพิ่มข้อมูล:\n", dataFrame)
ผลลัพธ์
DataFrame เดิม:
Car Place Units
0 BMW Delhi 100
1 Audi Bangalore 150
2 XUV Pune 50
3 Lexus Chandigarh 110
4 Volkswagen Mumbai 90
DataFrame หลังเพิ่มข้อมูล:
Car Place Units
0 BMW Delhi 100
1 Audi Bangalore 150
2 XUV Pune 50
3 Lexus Chandigarh 110
4 Volkswagen Mumbai 90
5 Mustang Hyderabad 60
6 Tesla Kerala 30
7 RollsRoyce Punjab 70
8 Bentley Gujarat 80
สรุป
- ใช้
pd.concat()แทนappend()เพื่อความเข้ากันได้กับ Pandas เวอร์ชันใหม่ ignore_index=Trueจะรีเซ็ต index ใหม่ต่อเนื่อง- คอลัมน์ต้องตรงกันทั้งชื่อและลำดับ (หรือใช้
sort=Trueเพื่อจัดเรียงอัตโนมัติ)