Pandas: สร้าง dataframe จาก dict ที่มีความยาวต่างกัน
คุณสามารถใช้ไวยากรณ์พื้นฐานต่อไปนี้เพื่อสร้าง DataFrame แพนด้าจากพจนานุกรมที่รายการมีความยาวต่างกัน:
import pandas as pd df = pd. DataFrame (dict([(key, pd. Series (value)) for key, value in some_dict. items ()]))
ไวยากรณ์นี้จะแปลงรายการอาร์เรย์พจนานุกรมให้เป็นรายการชุดหมีแพนด้า
สิ่งนี้ทำให้เราสามารถสร้าง DataFrame แพนด้าและเพียงแค่กรอกค่า NaN เพื่อให้แน่ใจว่าแต่ละคอลัมน์ใน DataFrame ผลลัพธ์จะมีความยาวเท่ากัน
ตัวอย่างต่อไปนี้แสดงวิธีใช้ไวยากรณ์นี้ในทางปฏิบัติ
ตัวอย่าง: สร้าง Pandas DataFrame จาก dict ที่มีความยาวต่างกัน
สมมติว่าเรามีพจนานุกรมต่อไปนี้ซึ่งมีรายการที่มีความยาวต่างกัน:
#create dictionary whose entries have different lengths some_dict = dict(A=[2, 5, 5, 7, 8], B=[9, 3], C=[4, 4, 2]) #view dictionary print (some_dict) {'A': [2, 5, 5, 7, 8], 'B': [9, 3], 'C': [4, 4, 2]}
หากเราพยายามใช้ฟังก์ชัน from_dict() เพื่อแปลงพจนานุกรมนี้เป็น DataFrame ของ pandas เราจะได้รับข้อผิดพลาด:
import pandas as pd #attempt to create pandas DataFrame from dictionary df = pd. DataFrame . from_dict (some_dict) ValueError : All arrays must be of the same length
เราได้รับข้อผิดพลาดแจ้งว่าอาร์เรย์ทั้งหมดในพจนานุกรมต้องมีความยาวเท่ากัน
เพื่อแก้ไขข้อผิดพลาดนี้ เราสามารถใช้ไวยากรณ์ต่อไปนี้เพื่อแปลงพจนานุกรมเป็น DataFrame:
import pandas as pd #create pandas DataFrame from dictionary df = pd. DataFrame (dict([(key, pd. Series (value)) for key, value in some_dict. items ()])) #view DataFrame print (df) ABC 0 2 9.0 4.0 1 5 3.0 4.0 2 5 NaN 2.0 3 7 NaN NaN 4 8 NaN NaN
โปรดทราบว่าเราสามารถสร้าง DataFrame ของ pandas ได้สำเร็จ และค่า NaN ได้รับการเสริมเพื่อให้แน่ใจว่าแต่ละคอลัมน์มีความยาวเท่ากัน
หากคุณต้องการแทนที่ค่า NaN เหล่านี้ด้วยค่าอื่น ๆ (เช่นศูนย์) คุณสามารถใช้ฟังก์ชัน แทนที่ () ได้ดังนี้:
#replace all NaNs with zeros
df. replace (np. nan , 0, inplace= True )
#view updated DataFrame
print (df)
ABC
0 2 9.0 4.0
1 5 3.0 4.0
2 5 0.0 2.0
3 7 0.0 0.0
4 8 0.0 0.0
โปรดทราบว่าค่า NaN แต่ละค่าจะถูกแทนที่ด้วยศูนย์
คุณสามารถใช้ฟังก์ชัน แทนที่ () เพื่อแทนที่ค่า NaN ด้วยค่าใดก็ได้ที่คุณต้องการ
แหล่งข้อมูลเพิ่มเติม
บทช่วยสอนต่อไปนี้จะอธิบายวิธีดำเนินการทั่วไปอื่น ๆ ในแพนด้า:
Pandas: วิธีแปลง DataFrame เป็นพจนานุกรม
Pandas: วิธีเปลี่ยนชื่อคอลัมน์ด้วยพจนานุกรม
Pandas: วิธีเติมค่า NaN โดยใช้พจนานุกรม