我正在尝试从另一个question重塑一个融化的数据框。截至目前,这就是我所拥有的:
col1 variable value
0 A col2 1
1 B col2 2
2 A col2 3
3 B col2 3
4 A col3 5
5 B col3 4
6 A col3 6
7 B col3 5
我想把它变成类似的东西:
col1 variable value1 value2
0 A col2 1 3
1 A col3 5 6
2 B col2 2 3
3 B col3 4 5
要理解这种重新排序背后的逻辑,这就是原始数据框的样子,排序:
col1 variable value
0 A col2 1 \ 1 (value1 = 1, value2 = 3)
2 A col2 3 /
4 A col3 5 \ 2 (value1 = 5, value2 = 6)
6 A col3 6 /
1 B col2 2 \ 3 (value1 = 2, value2 = 3)
3 B col2 3 /
5 B col3 4 \ 4 (value1 = 4, value2 = 5)
7 B col3 5 /
我想做的事情就像重塑一样。
我相信这会与pivot
或pivot_table
有关,但我不确定......我该怎么做?
答案 0 :(得分:1)
使用groupby
In [589]: (df.groupby(['col1', 'variable']).value.apply(list)
.apply(pd.Series)
.rename(columns=lambda x: 'value{}'.format(x+1))
.reset_index())
Out[589]:
col1 variable value1 value2
0 A col2 1 3
1 A col3 5 6
2 B col2 2 3
3 B col3 4 5