将数据帧列拆分为相等的子长度和 return 新数据帧

Split dataframe column into equal sublengths and return the new dataframe

我有一个如下所示的数据框,我想将字符串列拆分成行,每行具有 4 个字符的相等字符串。

date, string
2002-06-01, 12345678
2002-06-02, 87654321

预期输出

date, string
2002-06-01, 1234
2002-06-01, 5678
2002-06-02, 8765
2002-06-02, 4321

我试过这里给出的例子:

from itertools import chain

def chainer(s):
    return list(chain.from_iterable(s.str.split(df['string'], 4)))

lens = df['string'].str.split(df['string'], 4).map(len)
res = pd.DataFrame({'date': np.repeat(df['date'], lens), 'string': chainer(df['string'])})

但我收到错误:TypeError: unhashable type: 'Series'。我该如何解决这个问题。

爆炸块

df.assign(
    string=[
        [x[i:i+4] for i in range(0, len(x), 4)]
         for x in df.string]
).explode('string')

         date string
0  2002-06-01   1234
0  2002-06-01   5678
1  2002-06-02   8765
1  2002-06-02   4321

这是另一种方式:

df.assign(string = df['string'].str.findall(r'\d{4}')).explode('string')

输出:

       date string
0  6/1/2002   1234
0  6/1/2002   5678
1  6/2/2002   8765
1  6/2/2002   4321