У меня есть список адресов, которые я хотел бы поместить в информационный кадр, где каждая строка - это новый адрес, а столбцы - это единицы адреса (название, улица, город).
Однако,Как структурирован список, некоторые адреса длиннее других.Например:
address = ['123 Some Street, City','45 Another Place, PO Box 123, City']
У меня есть файл данных pandas со следующими столбцами:
Index Court Address Zipcode Phone
0 Court 1 123 Court Dr, Springfield 12345 11111
1 Court 2 45 Court Pl, PO Box 45, Pawnee 54321 11111
2 Court 3 1725 Slough Ave, Scranton 18503 11111
3 Court 4 101 Court Ter, Unit 321, Eagleton 54322 11111
Я хотел бы разбить столбец адреса на до трех столбцовв зависимости от того, сколько разделителей запятых в адресе, с заполнением NaN, где значения будут отсутствовать.
Например, я надеюсь, что данные будут выглядеть так:
Index Court Address Address2 City Zip Phone
0 Court 1 123 Court Dr NaN Springfield ... ...
1 Court 2 45 Court Pl PO Box 45 Pawnee ... ...
2 Court 3 1725 Slough Ave NaN Scranton ... ...
3 Court 4 101 Court Ter Unit 321 Eagleton ... ...
Iпробовал и попробовал множество различных решений на StackOverflow безрезультатно.Самое близкое, что я получил, с этим кодом:
df2 = pd.concat([df, df['Address'].str.split(', ', expand=True)], axis=1)
Но он возвращает фрейм данных, который добавляет следующие три столбца в конец, структурированные так:
... 0 1 2
... 123 Court Dr Springfield None
... 45 Court Pl PO Box 45 Pawnee
Это близко,но, как вы можете видеть, для более коротких записей город совпадает со второй адресной строкой для более длинных записей.
В идеале, столбец 2 должен заполнять каждую строку городом, а столбец 1 должен чередоваться между«Нет» и вторая адресная строка, если применимо.
Надеюсь, это имеет смысл - это сложно выразить словами.Спасибо!