熊猫爆炸指数

时间:2019-12-07 04:49:44

标签: python python-3.x pandas

我有一个类似下面的df

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

当我使用df.explode(‘col1’)进行爆炸时,我得到的结果如下

col1 col2
a      x
b      x
c      x
d      y
b      y

但是,我想要下面的东西,

col1 col2 col1_index
a      x      1
b      x      2
c      x      3
d      y      1
b      y      2

有人可以帮我吗?

2 个答案:

答案 0 :(得分:2)

您可以执行以下操作:

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

输出

   col1_index col1 col2
0           0    a    x
1           1    b    x
2           2    c    x
3           0    d    y
4           1    b    y

答案 1 :(得分:2)

爆炸后,您可以简单地进行以下操作:

 a['col1_index'] = a.groupby('col2').cumcount()+1
  col1 col2  col1_index
0    a    x           1
1    b    x           2
2    c    x           3
3    d    y           1
4    b    y           2