У меня есть большой фрейм данных с примерно 500 столбцами, и во многих столбцах текст организован как «John-Doe». Я пытаюсь найти наиболее эффективный способ l oop через эти столбцы, и если присутствует текст, который соответствует этой структуре « - », тогда разделите столбцы на «исходное имя столбца_First» и «исходное имя столбца_Last. "а затем отбросьте старые столбцы и тире. Кроме того, некоторые из ячеек в столбцах имеют второй da sh, как в «John-Doe-M», поэтому я пытаюсь придумать способ интегрировать оператор try / except или if, чтобы учесть и этот случай. . До сих пор мой неудачный код выглядит следующим образом:
#Split the columns that contain a record (-) and create two new columns of wins and losses
def split_record(df, col):
try:
df[[df.add_suffix('First'), df.add_suffix('Last')]] = df.col.apply(lambda x: pd.Series(str(x).split('-')))
except:
try:
df[[df.add_suffix('First'), df.add_suffix('Last'), df.add_suffix('M'),]] = df.col.apply(lambda x: pd.Series(str(x).split('-')))
except:
pass
return df, col
for col in raw_df:
if '-' in col:
split_record(raw_df, col)
Я ломал голову над этим некоторое время, поэтому любая помощь приветствуется!