python - 每次我的字符串从文本更改为数字时,如何插入字符 ('-"),反之亦然?

标签 python pandas series

这是一个更大的数据框的示例。想象一下我有一个像这样的数据框:

import pandas as pd

df = pd.DataFrame({"ID":["4SSS50FX","2TT1897FA"],
                   "VALUE":[13, 56]})

df
Out[2]: 
          ID  VALUE
0   4SSS50FX     13
1  2TT1897FA     56

每次从数字更改为文本以及从文本更改为数字时,我想在 df["ID"] 的字符串中插入“-”。所以输出应该是这样的:

          ID  VALUE
0   4-SSS-50-FX     13
1  2-TT-1897-FA     56

我可以为每种情况创建特定条件,但我想对所有示例实现自动化。有人可以帮助我吗?

最佳答案

您可以使用 lookarounds 的正则表达式.

df['ID'] = df['ID'].str.replace(r'(?<=\d)(?=[A-Z])|(?<=[A-Z])(?=\d)', '-')

正则表达式匹配一个空字符串,该字符串前面是数字,后面是字母,反之亦然。然后,该空字符串将替换为 -

关于python - 每次我的字符串从文本更改为数字时,如何插入字符 ('-"),反之亦然?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/74464690/

相关文章:

Python Slippy-map 平铺生成

python - (如何)我可以使用 requests.OAuth2Session 发送(准备好的)请求?

python - 在seaborn箱线图上叠加额外的百分位标记时出现问题

python - 用于列表理解 Python 的多个条件语句

c - e^-x 麦克劳林系列扩展

python - 如何在 pandas groupby.size() 之后重命名列?

Python程序系列总结

python - 我不明白使用 np.boxplot 获得 Q1 和 Q3 的结果

python - django post_migrate 信号问题

python - 如果没有办法在 pandas read_csv 中设置超时,该怎么办?