熊猫爆炸指数

Sel*_*lva 6 python python-3.x pandas

我有一个像下面这样的 df

\n\n

a = pd.DataFrame([{'col1': ['a,b,c'], 'col2': 'x'},{'col1': ['d,b'], 'col2': 'y'}])

\n\n

当我使用 进行爆炸时df.explode(\xe2\x80\x98col1\xe2\x80\x99),我得到以下结果

\n\n
col1 col2\na      x\nb      x\nc      x\nd      y\nb      y\n
Run Code Online (Sandbox Code Playgroud)\n\n

然而,我想要像下面这样的东西,

\n\n
col1 col2 col1_index\na      x      1\nb      x      2\nc      x      3\nd      y      1\nb      y      2\n
Run Code Online (Sandbox Code Playgroud)\n\n

有人能帮我吗?

\n

Dan*_*ejo 5

您可以执行以下操作:

result = a.explode('col1').reset_index().rename(columns={'index' : 'col1_index'})
result['col1_index'] = result.groupby('col1_index').cumcount()
print(result)
Run Code Online (Sandbox Code Playgroud)

输出

   col1_index col1 col2
0           0    a    x
1           1    b    x
2           2    c    x
3           0    d    y
4           1    b    y
Run Code Online (Sandbox Code Playgroud)