import pandas as pd
strings = [
"THIS IS an example",
"ALSO this",
"ONE LAST",
"J. one more"
]
df1 = pd.DataFrame(strings, columns=["header"])
df1 = df1.join(
df1['header'].str.extract(
'^(?P<header1>[A-Z]+(?:[^\S\n]+[A-Z]+)*)?(?:(?:^|[^\S\n]+)(?P<header2>.+))?$',
expand=True
)
.fillna('')
)
print(df1)
aW1wb3J0IHBhbmRhcyBhcyBwZAoKc3RyaW5ncyA9IFsKICAgICJUSElTIElTIGFuIGV4YW1wbGUiLAogICAgIkFMU08gdGhpcyIsCiAgICAiT05FIExBU1QiLAogICAgIkouIG9uZSBtb3JlIgpdCmRmMSA9IHBkLkRhdGFGcmFtZShzdHJpbmdzLCBjb2x1bW5zPVsiaGVhZGVyIl0pCmRmMSA9IGRmMS5qb2luKAogICAgZGYxWydoZWFkZXInXS5zdHIuZXh0cmFjdCgKICAgICAgICAnXig/UDxoZWFkZXIxPltBLVpdKyg/OlteXFNcbl0rW0EtWl0rKSopPyg/Oig/Ol58W15cU1xuXSspKD9QPGhlYWRlcjI+LispKT8kJywKICAgICAgICBleHBhbmQ9VHJ1ZQogICAgKQogICAgLmZpbGxuYSgnJykKKQoKcHJpbnQoZGYxKQo=