如何转换大型数据框
我想转换以下数据框,但似乎无法获得正确的函数来执行此操作。每当我使用“melt”时,都会提示我转换为数组,尽管数组似乎不接受列名。
在任何情况下,任何帮助解决这个问题:
| 一种 | 乙 | C1 | C1.A | C2 | C2.A |
|---|---|---|---|---|---|
| 个人电脑 | 11001 | 核 | 老的 | 东南 | 新的 |
回答
MultiIndex使用replace后跟将列转换为split,然后stack重塑框架以将其转换为所需的格式
df = df1.set_index(['A', 'B'])
df.columns = df.columns
.str.replace(r'^(D+)(d+)(.*)', r'13_2')
.str.split('_', expand=True)
df = df.stack().droplevel(2).reset_index()
A B C C.A
0 PC 11001 Core Old
1 PC 11001 SE New