Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> Python

Làm phẳng DataFrame theo thứ tự C và F trong Python

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.