Tôi muốn làm tan một số nhóm cột của một khung dữ liệu thành nhiều cột mục tiêu. Tương tự như câu hỏi Python Pandas Melt Groups of Initial Columns Into Multiple Target Columns và pandas dataframe reshaping/stacking of multiple value variables into seperate columns. Tuy nhiên, tôi cần phải làm điều này một cách rõ ràng theo tên cột, chứ không phải theo vị trí chỉ mục.Pandas Làm tan một số nhóm cột thành nhiều cột mục tiêu theo tên
import pandas as pd
df = pd.DataFrame([('a','b','c',1,2,3,'aa','bb','cc'), ('d', 'e', 'f', 4, 5, 6, 'dd', 'ee', 'ff')],
columns=['a_1', 'a_2', 'a_3','b_1', 'b_2', 'b_3','c_1', 'c_2', 'c_3'])
df
gốc Dataframe:
id a_1 a_2 a_3 b_1 b_2 b_3 c_1 c_2 c_3
0 101 a b c 1 2 3 aa bb cc
1 102 d e f 4 5 6 dd ee ff
Target Dataframe
id a b c
0 101 a 1 aa
1 101 b 2 bb
2 101 c 3 cc
3 102 d 4 dd
4 102 e 5 ee
5 102 f 6 ff
Lời khuyên được nhiều đánh giá về một cách tiếp cận này.
Có một giải pháp trực quan hơn sử dụng chức năng 'pd.wide_to_long' được xây dựng chính xác cho tình huống này. Xem câu trả lời của tôi dưới đây. –