Я пытаюсь привести в порядок CSV, который мне дали, где столбцы сейчас не очень удобны для разработчиков. Я хотел бы использовать регулярные выражения, чтобы найти несколько шаблонов в именах столбцов, чтобы заменить несколько условий. Например, учитывая df1 с leading/trailed spaces
, white space
в заголовке, круглые скобки ()
и <
, тогда я хотел бы удалить leading/trailing spaces
и parenthesis
, заменить white space
на _
и замените <
на LESS_THAN
Например, превращение df1 в df2:
df1 = pd.DataFrame({' APPLES AND LEMONS': [1,2], ' ORANGES ([POUNDS]) ': [2,1], ' BANANAS < 5 ': [8,9]})
APPLES AND LEMONS ORANGES (POUNDS) BANANAS < 5
0 1 2 8
1 2 1 9
df2 = pd.DataFrame({'APPLES_AND_LEMONS': [1,2], 'ORANGES_POUNDS': [2,1], 'BANANAS_LESS_THAN_5 ': [8,9]})
APPLES_AND_LEMONS ORANGES_POUNDS BANANAS_LESS_THAN_5
0 1 2 8
1 2 1 9
Моя текущая реализация - просто объединение в цепочку str.replaces. Есть лучший способ сделать это? Я думал, что регулярные выражения могут быть особенно полезны, потому что есть сотни столбцов, и я уверен, что будет еще несколько головных болей, которые мне еще предстоит найти.
df1.columns = df1.columns.str.strip()
df1.columns = concatenated_df.columns.str.replace(' ','_').str.replace('<','LESS_THAN').str.replace('(', '').str.replace(')','')