python - 如何用逗号分隔每列并为存储在列表中的列重复此操作?
问题描述
目前,我要分隔的每一列都存储地址信息(街道、城市、邮政编码),我想将每个部分分隔在另一列中。前任。街道、城市、邮政编码都有自己的列。但是,我需要对存储在我的列表address_columns中的所有列重复此过程
数据是什么样子的:
address_columns = ['QUESTION_47', 'QUESTION_56', 'QUESTION_65', 'QUESTION_83', 'QUESTION_92']
(每列如何使用假地址)
问题 47
64 Fordham St, Toms River, NJ 08753
7352 Poor House St. Hartford, CT 06106
8591 Peninsula Lane, Copperas Cove, TX 76522
关于如何解决我的问题的粗略想法:\
第一步。
第一个逗号之前的所有字符串都放在第一列
第二个逗号之前的所有字符串都放在第二列
第三个逗号之前的所有字符串都放在第三列
ETC..
第二步。
- 识别最后一个逗号后的文本并将其放在最后一个附加逗号中
第三步。 对列表中的所有列重复
解决方案
您可以使用pandas.Series.str.split
带有expand=True
参数的方法。例如:
import pandas as pd
df = pd.DataFrame({'q47': ['11 4 st,seattle,22222', '11 9st,chicago,23456']})
dfnew = df['q47'].str.split(',', expand=True).rename(columns={0:'street', 1:'city', 2:'zip'})
推荐阅读
- objective-c - iOS 12.0 替代使用已弃用的 archiveRootObject:toFile:
- kraken.com - Kraken API 错误“EFunding:未知提取密钥”
- c - 从字符串中的特定大小写中删除空格
- sql - 一个耗时过长的视图查询——postgresql
- html - 更改投影的大小而不是实际的 png
- angular - 在特定时间可观察到的 Angular2 触发器
- javascript - babylon.js skybox 报错
- string - 使用进入
在接口上 - Vec 的零成本 >? - json - 如何解析json post请求
- java - java中通过TCP socket通信发送的对象属性不变