[英]How to split a string at uppercase letters from a dataframe column?
我想在這個 dataframe 列中分隔所有以大寫字符開頭的字符。
Unicainstancia_DF['TesteNomeJuiz']
0 ClinicadeOlhosSaoPauloLtda-Me
1 PatriciaAparecidaMendesFerreira
2 CarraroHoldingParticipaçõesLtda
3 IsadoraCentofantiFonseca
4 Petruso&PetrusoSupermercadosLtda
....
Name: TesteNomeJuiz, Length: 1510, dtype: object
而且我已經使用了一個 function 允許我這樣做它似乎不起作用
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
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
而且我還嘗試調用 The info() function 但不起作用
Unicainstancia_DF['TesteNomeJuiz'].info()
AttributeError Traceback (most recent call last)
<ipython-input-57-403d0ae3c1ac> in <module>
--> 1 Unicainstancia_DF['TesteNomeJuiz'].info()
F:\Anaconda\lib\site-packages\pandas\core\generic.py in __getattr__(self, name)
5272 if self._info_axis._can_hold_identifiers_and_holds_name(name):
5273 return self[name]
->5274 return object.__getattribute__(self, name)
5275
5276 def __setattr__(self, name: str, value) -> None:
AttributeError: 'Series' object has no attribute 'info'
您只能在 pandas.DataFrame 上調用 info(),而不能在 pandas.Series 上調用。
假設 Unicainstancia_DF 是 DataFrame,您可以調用: Unicainstancia_DF.info()
,但不能Unicainstancia_DF['TesteNomeJuiz'].info()
當您使用Unicainstancia_DF['TesteNomeJuiz']
時,您使用的是系列/列選擇器——您已經從 DataFrame 中選擇了一個列(或“系列”)並准備對其進行操作。
從你的例子中,我不清楚你想用那個系列做什么。 如果你想在 AZ 上拆分,那么你可以這樣做:
import re
print([re.split(r'[A-Z]', x) for x in Unicainstancia_DF['TesteNomeJuiz']]
但正如 Chris 所建議的,如果您闡明您預期的 output 以及您想要存儲拆分的位置,我可以更具體。 您是否真的想在 AZ 上拆分似乎值得懷疑——更有可能的是,您想要在 AZ 和任何其他角色之間的邊界上拆分。 是這樣嗎?
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.