【发布时间】:2021-11-26 19:57:04
【问题描述】:
如何有效地将数据帧的多列“扁平化”为一行?
| A | B | |
|---|---|---|
| 1 | 'a' | 'b' |
| 2 | 'c' | 'd' |
收件人:
| A_1 | A_2 | B_1 | B_2 |
|---|---|---|---|
| 'a' | 'c' | 'b' | 'd' |
【问题讨论】:
如何有效地将数据帧的多列“扁平化”为一行?
| A | B | |
|---|---|---|
| 1 | 'a' | 'b' |
| 2 | 'c' | 'd' |
收件人:
| A_1 | A_2 | B_1 | B_2 |
|---|---|---|---|
| 'a' | 'c' | 'b' | 'd' |
【问题讨论】:
由DataFrame.unstack创建Series with MultiIndex,转换为DataFrame并转置,最后展平MultiIndex:
df = df.unstack().to_frame().T
df.columns = df.columns.map(lambda x: f'{x[0]}_{x[1]}')
print (df)
A_1 A_2 B_1 B_2
0 'a' 'c' 'b' 'd'
【讨论】: