我目前正在进行一项测试,其中有不同的区域和一些相关的统计数据,以及位于这些区域的以逗号分隔的基因列表。该列表的数量是可变的,并且可能不包含任何内容("NA"
).
我怎样才能“融化”这个数据框:
region_id statistic genelist
1 2.5 A, B, C
2 0.5 B, C, D, E
3 3.2 <NA>
4 0.1 E, F
变成这样的事情:
region_id statistic gene
1 2.5 A
1 2.5 B
1 2.5 C
2 0.5 B
2 0.5 C
2 0.5 D
2 0.5 E
3 3.2 <NA>
4 0.1 E
4 0.1 F
使用下面的代码,使用stack
将其堆叠起来,然后分开', '
,然后再次堆叠,因为我们堆叠了两次,所以使用unstack
取消堆叠-2
,然后使用重置索引reset_index
with -1
,之后做最后的reset_index
不带参数:
print(df.set_index(['region_id', 'statistic'])
.stack()
.str.split(', ', expand=True)
.stack()
.unstack(-2)
.reset_index(-1, drop=True)
.reset_index()
)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)