วิธีบันทึก pandas dataframe เพื่อใช้ในภายหลัง (พร้อมตัวอย่าง)


บ่อยครั้งที่คุณอาจต้องการบันทึก DataFrame ของ pandas เพื่อใช้ในภายหลังโดยไม่ต้องนำเข้าข้อมูลจากไฟล์ CSV อีกครั้ง

วิธีที่ง่ายที่สุดในการทำเช่นนี้คือใช้ to_pickle() เพื่อบันทึก DataFrame เป็นไฟล์ดอง:

 df. to_pickle (" my_data.pkl ")

การดำเนินการนี้จะบันทึก DataFrame ในสภาพแวดล้อมการทำงานปัจจุบันของคุณ

จากนั้นคุณสามารถใช้ read_pickle() เพื่ออ่าน DataFrame จากไฟล์ Pickle ได้อย่างรวดเร็ว:

 df = pd. read_pickle (" my_data.pkl ")

ตัวอย่างต่อไปนี้แสดงวิธีการใช้ฟังก์ชันเหล่านี้ในทางปฏิบัติ

ตัวอย่าง: บันทึกและโหลด Pandas DataFrame

สมมติว่าเราสร้าง DataFrame แพนด้าต่อไปนี้ซึ่งมีข้อมูลเกี่ยวกับทีมบาสเก็ตบอลต่างๆ:

 import pandas as pd

#createDataFrame
df = pd. DataFrame ({' team ': ['A', 'B', 'C', 'D', 'E', 'F', 'G', 'H'],
                   ' points ': [18, 22, 19, 14, 14, 11, 20, 28],
                   ' assists ': [5, 7, 7, 9, 12, 9, 9, 4],
                   ' rebounds ': [11, 8, 10, 6, 6, 5, 9, 12]})

#view DataFrame
print (df)

  team points assists rebounds
0 A 18 5 11
1 B 22 7 8
2 C 19 7 10
3 D 14 9 6
4 E 14 12 6
5 F 11 9 5
6 G 20 9 9
7:28 4 12

เราสามารถใช้ df.info() เพื่อแสดงประเภทข้อมูลของตัวแปรแต่ละตัวใน DataFrame:

 #view DataFrame info
print ( df.info ())

<class 'pandas.core.frame.DataFrame'>
RangeIndex: 8 entries, 0 to 7
Data columns (total 4 columns):
 # Column Non-Null Count Dtype 
--- ------ -------------- ----- 
 0 team 8 non-null object
 1 point 8 non-null int64 
 2 assists 8 non-null int64 
 3 rebounds 8 non-null int64 
dtypes: int64(3), object(1)
memory usage: 292.0+ bytes
None

เราสามารถใช้ฟังก์ชัน to_pickle() เพื่อบันทึก DataFrame นี้ลงในไฟล์ดองที่มีนามสกุล .pkl :

 #save DataFrame to pickle file
df. to_pickle (" my_data.pkl ")

DataFrame ของเราได้รับการบันทึกเป็นไฟล์ดองในสภาพแวดล้อมการทำงานปัจจุบันของเรา

จากนั้นเราสามารถใช้ฟังก์ชัน read_pickle() เพื่ออ่าน DataFrame ได้อย่างรวดเร็ว:

 #read DataFrame from pickle file
df=pd. read_pickle (" my_data.pkl ")

#view DataFrame
print (df)

team points assists rebounds
0 A 18 5 11
1 B 22 7 8
2 C 19 7 10
3 D 14 9 6
4 E 14 12 6
5 F 11 9 5
6 G 20 9 9
7:28 4 12

เราสามารถใช้ df.info() อีกครั้งเพื่อยืนยันว่าประเภทข้อมูลของแต่ละคอลัมน์เหมือนเดิม:

 #view DataFrame info
print ( df.info ())

<class 'pandas.core.frame.DataFrame'>
RangeIndex: 8 entries, 0 to 7
Data columns (total 4 columns):
 # Column Non-Null Count Dtype 
--- ------ -------------- ----- 
 0 team 8 non-null object
 1 point 8 non-null int64 
 2 assists 8 non-null int64 
 3 rebounds 8 non-null int64 
dtypes: int64(3), object(1)
memory usage: 292.0+ bytes
None

ข้อดีของการใช้ไฟล์ดองคือชนิดข้อมูลของแต่ละคอลัมน์จะถูกรักษาไว้เมื่อเราบันทึกและโหลด DataFrame

นี่เป็นข้อได้เปรียบเหนือการบันทึกและการโหลดไฟล์ CSV เนื่องจากเราไม่จำเป็นต้องดำเนินการแปลงใดๆ บน DataFrame เนื่องจากไฟล์ Pickle จะคงสถานะดั้งเดิมของ DataFrame ไว้

แหล่งข้อมูลเพิ่มเติม

บทช่วยสอนต่อไปนี้จะอธิบายวิธีแก้ไขข้อผิดพลาดทั่วไปอื่นๆ ใน Python:

วิธีแก้ไข KeyError ใน Pandas
วิธีแก้ไข: ValueError: ไม่สามารถแปลง float NaN เป็น int
วิธีแก้ไข: ValueError: ตัวถูกดำเนินการไม่สามารถออกอากาศด้วยรูปร่างได้

เพิ่มความคิดเห็น

อีเมลของคุณจะไม่แสดงให้คนอื่นเห็น ช่องข้อมูลจำเป็นถูกทำเครื่องหมาย *