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

Python Pandas - Tạo DataFrame từ MultiIndex (cơ bản)

Để tạo DataFrame từ các cấp độ của MultiIndex, chúng ta sử dụng phương thức to_frame() cơ bản nhất.

Các bước thực hiện

1. Import thư viện

import pandas as pd

2. Tạo MultiIndex có tên cấp độ

arrays = [[1, 2, 3, 4], ['John', 'Tim', 'Jacob', 'Chris']]
multiIndex = pd.MultiIndex.from_arrays(arrays, names=('ranks', 'student'))

3. Chuyển thành DataFrame

dataFrame = multiIndex.to_frame()

Ví dụ hoàn chỉnh

import pandas as pd

arrays = [[1, 2, 3, 4], ['John', 'Tim', 'Jacob', 'Chris']]
multiIndex = pd.MultiIndex.from_arrays(arrays, names=('ranks', 'student'))

print("MultiIndex:\n", multiIndex)
print("\nCác cấp độ:\n", multiIndex.levels)

# Chuyển thành DataFrame mặc định
dataFrame = multiIndex.to_frame()
print("\nDataFrame:\n", dataFrame)

Kết quả đầu ra

MultiIndex:
MultiIndex([(1, 'John'), (2, 'Tim'), (3, 'Jacob'), (4, 'Chris')], names=['ranks', 'student'])
Các cấp độ:
[[1, 2, 3, 4], ['Chris', 'Jacob', 'John', 'Tim']]
DataFrame:
       ranks student
ranks student
1      John       1  John
2      Tim        2  Tim
3      Jacob      3 Jacob
4      Chris      4 Chris

Giải thích cấu trúc kết quả

DataFrame kết quả có:

  • Index: MultiIndex gốc (cặp (ranks, student)).
  • Columns: ['ranks', 'student'] - tên cấp độ của MultiIndex.
  • Values: Mỗi hàng lặp lại giá trị của index.

Đây là hành vi mặc định: to_frame() giữ MultiIndex làm index và dùng tên cấp độ làm tên cột.

Khi nào dùng to_frame()?

  • Chuyển MultiIndex thành DataFrame để thao tác cột.
  • Reset index: mi.to_frame().reset_index(drop=True).
  • Export ra CSV/Excel với index=False.