【发布时间】:2021-12-27 17:10:36
【问题描述】:
假设下一个打包的df,其中column_name代表列名,row_name代表未打包数据帧中的行名:
column_name row_name value
0 col1 a 1
1 col1 b 2
2 col1 c 3
3 col2 d 4
4 col2 e 5
5 col2 f 6
6 col2 g 7
7 col2 h 8
解压后的数据框如下所示:
individual col1 col2
0 1 a e
1 2 b f
2 3 c g
3 4 a h
4 5 b e
5 6 c f
6 7 a g
7 8 b h
所需的输出可能如下所示:
individual col1 col2 value_col1 value_col2
1 a e 1 5
2 b f 2 6
3 c g 3 7
4 a h 1 8
5 b e 2 5
6 c f 3 6
7 a g 1 7
8 b h 2 8
有没有办法进行连接,以便将 value 列解压缩为解压缩数据框中的两个不同列?
可重现的数据:
unpacked_df = pd.DataFrame({
'individual': [1,2,3,4,5,6,7,8],
'col1':['a','b','c','a','b','c','a','b'],
'col2':['e','f','g','h','e','f','g','h']
})
packed_df = pd.DataFrame({
'column_name': ['col1','col1','col1','col2','col2','col2','col2','col2'],
'row_name': ['a','b','c','d','e','f','g','h'],
'value':[1,2,3,4,5,6,7,8]
})
【问题讨论】:
-
value_col1forindividual4 应该是 1 而不是 4
标签: python pandas dataframe join