สมมติว่าคุณมี DataFrame และต้องการแปลงข้อมูลเป็นอาร์เรย์ 1 มิติ (flatten) ทั้งแบบ C-order (row-major) และ F-order (column-major)
วิธีแก้ปัญหา
- สร้าง DataFrame
- ใช้
df.values.ravel(order='C')สำหรับ C-order - ใช้
df.values.ravel(order='F')สำหรับ F-order
ตัวอย่างโค้ด
import pandas as pd
df = pd.DataFrame({
'Id': [10, 25, 3, 11, 24, 6],
'Age': [12, 13, 12, 14, 15, 14]
})
print("DataFrame คือ:\n", df)
# Flatten แบบ C-order (row-major)
c_order = df.values.ravel(order='C')
print("flat c_order:\n", c_order)
# Flatten แบบ F-order (column-major)
f_order = df.values.ravel(order='F')
print("flat F_order:\n", f_order)
ผลลัพธ์
DataFrame คือ:
Id Age
0 10 12
1 25 13
2 3 12
3 11 14
4 24 15
5 6 14
flat c_order:
[10 12 25 13 3 12 11 14 24 15 6 14]
flat F_order:
[10 25 3 11 24 6 12 13 12 14 15 14]
คำอธิบาย:
- C-order (Row-major): อ่านข้อมูลแถวละแถว (Id แถวแรก, Age แถวแรก, Id แถวที่สอง, Age แถวที่สอง, ...)
- F-order (Column-major): อ่านข้อมูลคอลัมน์ละคอลัมน์ (Id ทั้งคอลัมน์, Age ทั้งคอลัมน์)