首页 > 解决方案 > 如何用逗号分隔每列并为存储在列表中的列重复此操作?

问题描述

目前,我要分隔的每一列都存储地址信息(街道、城市、邮政编码),我想将每个部分分隔在另一列中。前任。街道、城市、邮政编码都有自己的列。但是,我需要对存储在我的列表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

关于如何解决我的问题的粗略想法:\

第一步。

  1. 第一个逗号之前的所有字符串都放在第一列

  2. 第二个逗号之前的所有字符串都放在第二列

  3. 第三个逗号之前的所有字符串都放在第三列

    ETC..

第二步。

  1. 识别最后一个逗号后的文本并将其放在最后一个附加逗号中

第三步。 对列表中的所有列重复

标签: pythonpandas

解决方案


您可以使用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'}) 

推荐阅读