Giả sử bạn có một DataFrame và cần chuyển đổi nó thành mảng 1 chiều (flatten) theo hai thứ tự: C-order (hàng-major) và F-order (cột-major).
Giải pháp
- Tạo DataFrame.
- Sử dụng
df.values.ravel(order='C')để làm phẳng theo thứ tự hàng (C-style). - Sử dụng
df.values.ravel(order='F')để làm phẳng theo thứ tự cột (Fortran-style).
Mã ví dụ
import pandas as pd
df = pd.DataFrame({
'Id': [10, 25, 3, 11, 24, 6],
'Age': [12, 13, 12, 14, 15, 14]
})
print("DataFrame là:\n", df)
C_order = df.values.ravel(order='C')
print("flat c_order:\n", C_order)
F_order = df.values.ravel(order='F')
print("flat F_order:\n", F_order)
Kết quả
DataFrame là:
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]
Giải thích:
- C-order (row-major): Duyệt hàng 0 (10, 12), hàng 1 (25, 13), hàng 2 (3, 12)...
- F-order (column-major): Duyệt cột Id (10, 25, 3, 11, 24, 6), rồi cột Age (12, 13, 12, 14, 15, 14).
Tham số order trong ravel() cho phép kiểm soát cách bố trí bộ nhớ khi flatten mảng.