Joh*_*Doe 1 python python-3.x pandas
只是关于我的问题的简短描述.
我有两列[ name]和[ address]以某种方式,(部分)地址与名称在同一单元格中(从csv文件导入).
我想在名称列中拆分字符串(拆分为'2 /')并将地址部分添加到列[ address]并将名称保留在[ name]列中.
只需在[ address]为空时移动它,如果[ address]不为空则加入.
请在下面找到一个示例.
来自csv的原始数据:
name;address
Markus M Berg;Kirchenallee 52
Johanna P Wirth 2/Ufnau Strasse 48;
Felix B Beike 2/Mohrenstrasse 47;Dormettingen
Run Code Online (Sandbox Code Playgroud)
现在的情况
name | address
------------------------------------------------------------
Markus M Berg | Kirchenallee 52
Johanna P Wirth 2/Ufnau Strasse 48 |
Felix B Beike 2/Mohrenstrasse 47 | Dormettingen
Run Code Online (Sandbox Code Playgroud)
期望的情况:
name | address
------------------------------------------------------------
Markus M Berg | Kirchenallee 52
Johanna P Wirth | Ufnau Strasse 48
Felix B Beike | Mohrenstrasse 47 Dormettingen
Run Code Online (Sandbox Code Playgroud)
拆分r'\d/'并重新分配:
v = df.name.str.split(r'\d/', expand=True).fillna('')
df['name'] = v.iloc[:, 0].str.strip()
df['address'] = v.iloc[:, 1].str.cat(df['address'], sep=' ').str.strip()
Run Code Online (Sandbox Code Playgroud)
print(df)
name address
0 Markus M Berg Kirchenallee 52
1 Johanna P Wirth Ufnau Strasse 48
2 Felix B Beike Mohrenstrasse 47 Dormettingen
Run Code Online (Sandbox Code Playgroud)