我有数据框:
subject A_target_word_gd A_target_word_fd B_target_word_gd B_target_word_fd subject_type
1 1 2 3 4 mild
2 11 12 13 14 moderate
我想将其融合为一个数据框,如下所示:
cond subject subject_type value_type value
A 1 mild gd 1
A 1 mild fg 2
B 1 mild gd 3
B 1 mild fg 4
A 2 moderate gd 11
A 2 moderate fg 12
B 2 moderate gd 13
B 2 moderate fg 14
...
...
意思是,根据列名称的分隔符来融化。
最好的方法是什么?
这是我的使用方式melt and series.str.split():
m = df.melt(['subject','subject_type'])
n = m['variable'].str.split('_',expand=True).iloc[:,[0,-1]]
n.columns = ['cond','value_type']
m = m.drop('variable',1).assign(**n).sort_values('subject')
print(m)
subject subject_type value cond value_type
0 1 mild 1 A gd
2 1 mild 2 A fd
4 1 mild 3 B gd
6 1 mild 4 B fd
1 2 moderate 11 A gd
3 2 moderate 12 A fd
5 2 moderate 13 B gd
7 2 moderate 14 B fd
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)