提取不同行中的多个值

我有一个数据集

ID   col1    col2               year
1     A     111,222,3334       2010
2     B     344, 111          2010
3     C      121,123          2011

我想以下列方式重新排列数据集

ID   col1   col2            year
1     A     111            2010
1     A     222            2010
1     A     3334            2010
2     B     344            2010
2     B     111            2010
3     C     121            2011
3     C     123            2011

我可以使用以下代码来完成。

a = df.COMP_MONITOR_TYPE_CODE.str[:3]
df['col2'] = np.where(a == 111, 111)

因为,我有一个很长的数据,一个一个地做会很耗时。有没有其他方法可以做到

回答

split+ explode:

df.assign(col2 = df.col2.str.split(',')).explode('col2')

#   ID col1  col2  year
#0   1    A   111  2010
#0   1    A   222  2010
#0   1    A  3334  2010
#1   2    B   344  2010
#1   2    B   111  2010
#2   3    C   121  2011
#2   3    C   123  2011


以上是提取不同行中的多个值的全部内容。
THE END
分享
二维码
< <上一篇
下一篇>>