假设我有DataFrame
df
:
a b c
v f 3|4|5
v 2 6
v f 4|5
我想制作这个df
:
a b c
v f 3
v f 4
v f 5
v 2 6
v f 4
v f 5
我知道如何在 R 中进行这种转换,使用tidyr
包裹。
在 pandas 中是否有一种简单的方法可以做到这一点?
你可以:
import numpy as np
df = df.set_index(['a', 'b'])
df = df.astype(str) + '| ' # There's a space ' ' to match the replace later
df = df.c.str.split('|', expand=True).stack().reset_index(-1, drop=True).replace(' ', np.nan).dropna().reset_index() # and replace also has a space ' '
to get:
a b 0
0 v f 3
1 v f 4
2 v f 5
3 v 2 6
4 v f 4
5 v f 5
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)