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

Python Pandas - Tạo DataFrame từ MultiIndex không đặt index

Để tạo DataFrame từ các cấp độ của MultiIndex nhưng không sử dụng MultiIndex làm index của DataFrame, chúng ta dùng phương thức to_frame() với tham số index=False.

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. Tạo DataFrame không set index

dataFrame = multiIndex.to_frame(index=False)

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)

# Tạo DataFrame, index=False -> index mặc định 0,1,2,3
dataFrame = multiIndex.to_frame(index=False)
print("\nDataFrame (index=False):\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 (index=False):
   ranks student
0      1    John
1      2     Tim
2      3   Jacob
3      4   Chris

So sánh index=True vs index=False

Tham sốIndex của DataFrame kết quảTên cột
index=True (mặc định)MultiIndex gốcTên cấp độ của MultiIndex
index=FalseRangeIndex (0, 1, 2, ...)Tên cấp độ của MultiIndex

Dùng index=False khi muốn DataFrame phẳng (flat) để dễ thao tác, merge, export CSV.