我的输入是一个字符串:
text = '''10 February 2023
abc
def
23 March 2023
ghi
jkl'''
我编写了以下代码(使用正则表达式,但我对任何其他 Select 都持开放态度):
data = []
for m in re.finditer(r'(\d+ \w+ \w+)\n(.*)', text, flags=re.I|re.S):
data.append([m.group(1), m.group(2).splitlines()])
df = pd.DataFrame(data, columns=['date', 'letters']).explode('letters')
我的代码给出了这个奇怪的结果:
date letters
0 10 February 2023 abc
0 10 February 2023 def
0 10 February 2023 23 March 2023
0 10 February 2023 ghi
0 10 February 2023 jkl
当我期待着这个的时候:
date letters
0 10 February 2023 abc
0 10 February 2023 def
1 23 March 2023 ghi
1 23 March 2023 jkl
我如何修复我的代码?另外,你还有什么其他的建议吗?我很有兴趣向他们学习.