python - 使用 pandas 拆分列并附加到其他列中的现有值

标签 python pandas dataframe

我在使用 pandas 进行数据清理方面面临着一些艰巨的挑战。我需要处理数据框中的邮政编码、州和城市列(如附件)。

这是数据的一瞥:

    City         State        ZIP   
0   PEARLAND       TX        77584
1   HOT SPRINGS    AR        7191
2   PALMDALE       CA        93551
3   JONESBOROY     AR        72401
4   WATSONVILLE    CA        95076
5   SACRAMENTO     UCA       95823      
6   AGOURAT       HILLS      CA 91301
7   JSAN          DIEGO      CA 92114
8   NEW           PORT       RICHEY FL 34655
9   BURBANK        CA        91501

我面临的挑战: 邮政编码列应仅包含邮政编码,州列应仅包含 2 位数的州代码,城市应具有有效的城市名称。

例如:

    City          State        ZIP
6   AGOURAT       HILLS      CA 91301
7   JSAN          DIEGO      CA 92114
8   NEW           PORT       RICHEY FL 34655

应该是 -

    City               State        ZIP
6   AGOURAT HILLS      CA         91301
7   JSAN DIEGO         CA         92114
8   NEW PORT RICHEY    FL         34655

那么谁能帮助我如何使用 Pandas 数据框来实现这一目标?

最佳答案

最好的选择是使用正则表达式再次读取数据。如果没有,请重做。

df['combined'] = df.apply(' '.join, axis = 1)
df[['City', 'State', 'Zip']] = df['combined'].str.extract('([A-Z ]+)\s+([A-Z]{2})\s+(\d+)', expand = True)
df.drop('combined', axis = 1, inplace = True)



    City            State   ZIP
0   PEARLAND        TX  77584
1   HOT SPRINGS     AR  7191
2   PALMDALE        CA  93551
3   JONESBOROY      AR  72401
4   WATSONVILLE     CA  95076
5   NaN             NaN NaN
6   AGOURAT HILLS   CA  91301
7   JSAN DIEGO      CA  92114
8   NEW PORT RICHEY FL  34655
9   BURBANK         CA  91501

关于python - 使用 pandas 拆分列并附加到其他列中的现有值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47818802/

相关文章:

python - 是否可以将 GCM 与 python GAE 后端一起使用?

python - 如何在 pygame 中进行角色射击?

python - 如何解析 df 中的 json 列,我们使用选定的键附加新列

python - 在 Python 中从 URL 中抓取特定信息

Python StatsModels 时间序列分解重复图

python - Pandas Lookup 将被弃用——优雅高效的替代方案

python - 精度丢失调用 cv2.cartToPolar 与 angleInDegrees 设置为 False

python - Pandas 的 to_datetime 函数不会改变 dtype

python - 从 CSV 文件绘制 Pandas 框架

python - 如何查看str包含bool数组的内容?