python - 根据条件拆分 pandas 数据帧列中特殊字符上的字符串

标签 python pandas split

我正在尝试在我的 pandas 数据框中的地址列中建立一致性。我的邮政编码列有两种格式:1) 87301 2) 87301-1234。并非每一行都有连字符,因此我需要在连字符存在时将其拆分。

我的数据如下所示:

State  ZIP
CA     85145-7045
PA     76913   

我尝试了一些方法来解决这个问题。我尝试过:

data['Zip_1'],data['Zip_2'] = data['Zip'].str.split('-').str

我已经尝试过:

data['Zip'] = data['Zip'].str.split('-', n=1, expand=True)
data['Zip'] = data['Zip'][0]
data['Zip_drop'] = data['Zip'][1]

我也尝试过使用 lambda 函数。

但是它只返回空值。

我希望新列对于没有连字符的邮政编码返回 NaN,如果包含连字符,则返回连字符后面的数字。 然而,新列只是为每个观察填充 NaN

最佳答案

您可以通过将“替换”与正则表达式结合使用来实现这一点。

第 1 步

example_df = pd.DataFrame({'State': ['CA', 'PA'],
                           'ZIP': ['85145-7045', '76913'] })

example_df

enter image description here

第 2 步

# Keep only the numbers before the hyphen (if any).
example_df = example_df.replace('\-\d*', '', regex=True)
example_df

output

关于python - 根据条件拆分 pandas 数据帧列中特殊字符上的字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57485927/

相关文章:

python - 对于 Electron 应用程序,可以将 Selenium 与 Python 一起使用吗?

Python cx-freeze 快捷方式图标

python - 在 Pandas 中读取一个 excel 文件并合并未命名的列

python - 估计的自由度不足

java - 使用SplitString分隔输入句子并根据字母降序排序

r - 将一列包含确切信息的列拆分为两列

java - 如何拆分仅包含定界符的字符串?

python - 在多 GPU 的情况下,CPU 代码可以存在于 "with tf.device(gpu_id) :"下吗?

python - 在 Django 中中止 Celery 中正在运行的任务

python - Pandas 不删除重复项