给定一个看起来像这样的 Pandas DF 列:
…我怎样才能把它变成这样:
XOM ZM AAPL SOFI NKLA TIGR
尽管这些字符串的最大长度似乎是 4 个字符,但我不能依赖它,我希望能够拥有一个类似的字符串,ABCDEFGHIJABCDEFGHIJ并且仍然能够将其转换ABCDEFGHIJ为一列计算。最好不for循环/迭代行。
ABCDEFGHIJABCDEFGHIJ
ABCDEFGHIJ
for
你可以像下面这样使用regex模式:r'\b(\w+)\1\b'str.extract
regex
r'\b(\w+)\1\b'
str.extract
df = pd.DataFrame({'Symbol':['ZOMZOM', 'ZMZM', 'SOFISOFI', 'ABCDEFGHIJABCDEFGHIJ', 'NOTDUPLICATED']}) print(df['Symbol'].str.extract(r'\b(\w+)\1\b'))
输出:
0 0 ZOM 1 ZM 2 SOFI 3 ABCDEFGHIJ 4 NaN # <- from `NOTDUPLICATED`
解释:
\b
(w+)
\1