L = ['=Start=', 'From: Me', 'To: You', 'Hey there', 'Howre u doing?',
    '=End', '=Start=', 'From: You', 'To: Me', 'Good!', 'How bout you?', '=End']
df = pd.DataFrame({'Message': L})
b = (df.Message == '=Start=').cumsum()
df['From'] = df.Message.str.extract('From: (.*)', expand=False).ffill()
df['To'] = df.Message.str.extract('To: (.*)', expand=False).ffill()
out = ['=Start=', '=End', 'From:', 'To:']
df = df[~df.Message.str.contains('|'.join(out))]
df = df.groupby(b).agg({'Message': ' '.join, 'To': 'last', 'From': 'last'})
df = df.reset_index(drop=True)
print(df)
Разделение записей чата из списка