Вы можете изменить индекс, как описано уже с помощью set_index
. Вам не нужно вручную менять строки с помощью столбцов, в pandas есть метод transpose (data.T
), который делает это для вас:
> df = pd.DataFrame([['ABBOTSFORD', 427000, 448000],
['ABERFELDIE', 534000, 600000]],
columns=['Locality', 2005, 2006])
> newdf = df.set_index('Locality').T
> newdf
Locality ABBOTSFORD ABERFELDIE
2005 427000 534000
2006 448000 600000
, после чего вы можете получить значения столбца dataframe и преобразовать их в список:
> newdf['ABBOTSFORD'].values.tolist()
[427000, 448000]
Попробуйте следующее регулярное выражение:
(?P<name>[\w-]+?)\s*=\s*{(?:{| {\[})?\s*(?P<content>.*?)(?:,])?\s*}{1,2}
В моем тесте оно соответствует всем 3 вашим образцам.
Рабочий пример (содержащий проверку регулярного выражения выше) см. В https://regex101.com/r/Gy8IWu/1
. конкретные части тестируемого регулярного выражения и то, что было сопоставлено.
Регулярное выражение, соответствующее всем 3 вариантам, согласно вашему комментарию:
(?P<name>[\w-]+?)\s*=\s*{{1,2}\s*(?P<content>(?:{\[})?.*?)\s*}{1,2}
Смотрите обновленный пример: https://regex101.com/r / Gy8IWu / 2