在不同行中提取多个值

  • 本文关键字:提取 python pandas
  • 更新时间 :
  • 英文 :


我有一个数据集

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

最新更新