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

Python Pandas - Tạo DataFrame từ MultiIndex với tên cột tùy chỉnh

Để tạo DataFrame từ các cấp độ của MultiIndex và đặt tên cột tùy chỉnh, chúng ta sử dụng phương thức MultiIndex.to_frame() với tham số name.

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

1. Import thư viện

import pandas as pd

2. Tạo MultiIndex (không tên cấp độ)

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

3. Chuyển thành DataFrame với tên cột mới

Tham số name=['One', 'Two'] đặt tên cho các cột:

dataFrame = multiIndex.to_frame(name=['One', 'Two'])

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)

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

# Tạo DataFrame, đặt tên cột 'One', 'Two'
dataFrame = multiIndex.to_frame(name=['One', 'Two'])
print("\nDataFrame:\n", dataFrame)

Kết quả đầu ra

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

Lưu ý về kết quả

Kết quả hiển thị hơi nhầm lẫn do index của DataFrame trùng với cột 'One'. Thực tế DataFrame có cấu trúc:

   One    Two
1  John    1
2  Tim     2
3  Jacob   3
4  Chris   4

Các tham số hữu ích của to_frame()

Tham sốMô tả
nameDanh sách tên cột (nếu MultiIndex không có tên cấp độ)
indexTrue/False - có dùng MultiIndex làm index DataFrame không (mặc định True)