このようなデータフレームの artist_namesの中にある文字列から、曲名とそれ以外に分割して、適切な列に格納したい。
# 例外の行を正規表現で分割しておく
#まず列の中のデータを正しい列にコピーして、元の列のデータを削除する。
df_tmp['song_title'] = df_tmp['artist_names']
df_tmp['artist_names'] = ""
# (English Translation) もしくはその類似表現で分割する
df_tmp2 = pd.concat([df_tmp['index'], df_tmp['page_views'], df_tmp['artist_names'], df_tmp['song_title'].str.split(r'\(.+?nglish Translation\)|\[.+?nglish Translation\]', 1, expand=True)], axis=1) #ハイフンの半角全角問題を正規表現で潰しておく
# 列名を付け直す
df_tmp2.rename(columns={1: 'by', 0: 'song_title'}, inplace=True)
# 本体データフレームと列の並びを同じにするために、新たな列を指定の位置に挿入する
df_tmp2.insert(loc = 4, column= 'English Translation', value= 'English Translation')
df_tmp2