我有一个数据帧,它的列和行的名称如下索引所示:
idx = ['CAN_agr', 'CAN_ser', 'USA_agr', 'USA_ser', 'MEX_agr', 'MEX_ser']
sample = pd.DataFrame(
[[1, 2, 3, 4, 5 ,6],
[7, 8, 9, 10, 11, 12],
[13, 14, 15, 16, 17, 18],
[19, 20, 21, 22, 23, 24],
[25, 26, 27, 28, 29, 30],
[31, 32, 33, 34, 35, 36]],
index = idx,
columns=idx
)我想使用这些名称来创建多个索引,其中level=0将是国家名称(即CAN、美国、MEX),而level=1将具有每个国家的行业类型(即agr、ser)。我想使用str.extract,但我不确定如何根据国家和行业类型将标签分开,并将它们分配为多索引列和行。有人能帮我解决这个问题吗?非常感谢!
发布于 2021-06-01 02:52:43
split索引和_上的列,然后将它们重新分配为索引和列应该做的事情:
sample.index = sample.index.str.split('_', expand=True)
sample.columns = sample.columns.str.split('_', expand=True)
sample
CAN USA MEX
agr ser agr ser agr ser
CAN agr 1 2 3 4 5 6
ser 7 8 9 10 11 12
USA agr 13 14 15 16 17 18
ser 19 20 21 22 23 24
MEX agr 25 26 27 28 29 30
ser 31 32 33 34 35 36https://stackoverflow.com/questions/67778913
复制相似问题