如何在数据框列中以大写字母拆分字符串?

时间:2020-08-20 02:07:12

标签: python pandas string dataframe split

我想在此dataframe列中分隔所有以大写字母开头的字符。

x-zumo-auth

而且我已经使用了一个允许我执行该功能的功能,该功能似乎不起作用

Unicainstancia_DF['TesteNomeJuiz']
0          ClinicadeOlhosSaoPauloLtda-Me
1        PatriciaAparecidaMendesFerreira
2        CarraroHoldingParticipaçõesLtda
3               IsadoraCentofantiFonseca
4       Petruso&PetrusoSupermercadosLtda
....
Name: TesteNomeJuiz, Length: 1510, dtype: object

def camel_case_split(identifier):
matches = finditer('.+?(?:(?<=[a-z])(?=[A-Z])|(?<=[A-Z])(?=[A-Z][a-z])|$)', identifier)
return [m.group(0) for m in matches]

Unicainstancia_DF['TesteNomeJuiz'].astype('str')
splitted = re.sub('([A-Z][a-z]+)', r' \1', re.sub('([A-Z]+)', r' \1', Unicainstancia_DF['TesteNomeJuiz'])).split

而且我还尝试调用info()函数,但不起作用

TypeError                                 
Traceback (most recent call last)
<ipython-input-56-00cc9d0b832f> in <module>
1 Unicainstancia_DF['TesteNomeJuiz'].astype('str')
--> 2 splitted = re.sub('([A-Z][a-z]+)', r' \1', re.sub('([A-Z]+)', r' \1', 
Unicainstancia_DF['TesteNomeJuiz'])).split
F:\Anaconda\lib\re.py in sub(pattern, repl, string, count, flags)
208     a callable, it's passed the Match object and must return
209     a replacement string to be used."""
--> 210     return _compile(pattern, flags).sub(repl, string, count)
211 
212 def subn(pattern, repl, string, count=0, flags=0):
TypeError: expected string or bytes-like object

1 个答案:

答案 0 :(得分:0)

您只能在pandas.DataFrame上调用.info(),而不能在pandas.Series上调用。

假设Unicainstancia_DF是一个DataFrame,则可以调用:Unicainstancia_DF.info(),而不是Unicainstancia_DF['TesteNomeJuiz'].info()

在使用Unicainstancia_DF['TesteNomeJuiz']时,您正在使用序列/列选择器- 您已经从DataFrame中选择了一个列(或“系列”),并打算对其进行处理。

从您的示例中,我不清楚您要对该系列做什么。如果要在A-Z上分割,则可以执行以下操作:

import re

print([re.split(r'[A-Z]', x) for x in Unicainstancia_DF['TesteNomeJuiz']]

但是,正如克里斯建议的那样,如果您澄清期望的输出以及要存储拆分的位置,我可以更具体地说明。您实际上是否想在A-Z上分割似乎令人怀疑-更可能是您想在A-Z与任何其他字符之间的边界上分割。是这样吗?