gpt4 book ai didi

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

转载 作者:太空宇宙 更新时间:2023-11-03 14:23:09 24 4
gpt4 key购买 nike

我在使用 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/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com