在 Pandas 系列中用逗号分隔大小写

Separating lower case and uppercase with a comma in Pandas Series

我有一个pandas系列

list_df = pd.Series(['KingsDuck',
       'RangersIslandersDevils',
       'Shark',
       'Maple Leafs',
       'Red Wing'])

display(list_df)
0                 KingsDuck
1    RangersIslandersDevils
2                     Shark
3               Maple Leafs
4                  Red Wing
dtype: object

我想在小写字母和大写字母之间插入一个逗号。 (例如:'KingsDuck' 到 'Kings,Duck' 和 'RangersIslandersDevils' 到 'Rangers,Islanders,Devils')

我尝试了在线 python 正则表达式工具来测试我的正则表达式,它按预期工作: regextesting

然而,当我在我的 Jupyter Notebook 中尝试正则表达式时,输出不是我所期望的:

list_df.replace(r'(([a-z])([A-Z]))',r',', regex=True)
0                   KingsD,suck
1    RangersI,sslandersD,sevils
2                         Shark
3                   Maple Leafs
4                      Red Wing
dtype: object

我该怎么做?

您的组太多,请删除外部括号。您有 ((a)(b)),所以 </code> 是 <code>ab</code> 是 <code>a</code> 是 <code>b

list_df.replace(r'([a-z])([A-Z])',
                r',', regex=True)

或者如果你真的想保留外部组:

list_df.replace(r'(([a-z])([A-Z]))',
                r',', regex=True)

输出:

0                  Kings,Duck
1    Rangers,Islanders,Devils
2                       Shark
3                 Maple Leafs
4                    Red Wing
dtype: object