我有一个地址列表,想把它们放到数据框中,每一行是一个新的地址,列是地址的单位(标题、街道、城市)。
但是,由于列表的结构不同,某些地址比其他地址更长。例如:
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 ... ...
我已经在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
这很接近理想,但是你可以看到对于较短的条目,城市与较长的条目的第二个地址行对齐。
理想情况下,第二列应该在每一行都填写城市,而第一列应该在适用时交替显示“None”和第二个地址行。
希望我表达清楚了,这是一个比较棘手的问题。谢谢!