python - 将熊猫数据框列拆分为新的 4 列
问题描述
我有这个 Pandas df,我会将 Adress 列(最后一个)溢出到 4 个新列 Stree name + num、zipcode、City 和 land。
测试
ID Address
1.10065e+08 Bachgasse 39 \n69502 Hemsbach \nDeutschland
2.34115e+08 Am Friedensplatz 3\n68165 Mannheim\nDeutschland
2.36743e+08 Am Friedensplatz 3\n68165 Mannheim\nDeutschland
2.24763e+08 Am Friedensplatz 3\n68165 Mannheim\nDeutschland
2.26209e+08 Am Friedensplatz 3\n68165 Mannheim
2.2621e+08 Am Friedensplatz 3\n68165 Mannheim
2.35501e+08 Herman-BurcharStrasse 1\n7265 Davos Wolfgang\n...
2.31895e+08 Via Nova 37\n7017 Flims Dorf\nSchweiz
2.3611e+08 Neu-Isenburg\nDeutschland
2.40194e+08 Herman-BurcharStrasse 1\n7265 Davos Wolfgang\n.
我想得到这个输出
ID Street zipcode city country
1.10065e+08 Bachgasse39 69502 Hemsbach Deutschland
2.34115e+08 Am Friedensplatz3 68165 Mannheim Deutschland
2.36743e+08 Am Friedensplatz3 68165 Mannheim Deutschland
2.24763e+08 Am Friedensplatz3 68165 Mannheim Deutschland
2.26209e+08 Am Friedensplatz3 68165 Mannheim Nan
2.2621e+08 Am Friedensplatz3 68165 Mannheim Nan
.... ....... ..... .... ....
.... ...... ...... .... ......
我已经尝试过这种方法来解决这个问题,但对我不起作用:
(A,B,C,D) 是 (Street name + num, Zipcode ...) 的列名
pd.DataFrame(test['Firmen Adresse Geschäftlich'].str.split(r"\n",1).tolist(),columns = ['A','B','C'])
但我收到了这个错误:
TypeError:“float”类型的对象没有 len()
这里还有图片:
解决方案
鉴于您的列Firmen Adresse
Geschäftlich
是字符串,您可以尝试以下操作:
df1=pd.DataFrame(test['Firmen Adresse
Geschäftlich'].str.split(r"\n").tolist(),columns = ['street
no.','zip','Land'],index=test['ID'])
df1[['zip','Stadt']]=pd.DataFrame(df1['zip'].str.strip().str.split('
').tolist(),index = df1.index)
具有较小日期集的输出如下所示:
street no. zip Land Stadt
ID
1 Bachgasse 39 69502 Deutschland Hemsbach
2 Am Friedensplatz 3 68165 Deutschland Mannheim
推荐阅读
- google-sheets - 将列中的重复行合并为逗号分隔值 - Google Query
- wordpress - 未收到 Wordpress 授权标头
- c - 如何修复此程序中的二进制文件 a 和 b 不同的错误?
- vb.net - Crystal Report“已达到系统管理员配置的最大报表处理作业限制”
- python - Python将两个文件合并在一起
- java - 如何使用 rosjava 获取所有正在运行的 ros 节点的列表?
- java - 如何杀死在线程中运行的 Runnable?
- bash - 如何在 BASH shell 脚本中在终端中获取多个文件
- android - gradle build 时无法应用插件 [id 'com.chaquo.python']
- javascript - Anime.js 围绕具有不同起点的同一路径为多个对象设置动画