我在熊猫中有一栏看起来像这样:
>>> df['Name'][0]
'BTC Bitcoin'
我想使用正则表达式创建一列,该列搜索3-5个大写字母,后跟两个空格。然后,我使用.split()将符号留给我们。这是我使用的正则表达式公式:
symbols = []
for i in df['Name']:
symbols.append(re.search(r"[A-Z]{3,5}\s\s", i).group().split())
df['Symbol'] = symbols
这是我的结果:
>>> df['Symbol'][0]
['BTC']
如何获得相同的结果但没有括号?
答案 0 :(得分:0)
之所以得到['BTC']
是因为表达式re.search(r"[A-Z]{3,5}\s\s", i).group().split()
产生了一个list
对象,例如,您是['BTC']
,然后将其附加到您在for循环之外定义的空列表symbols
。
因此,您的symbols
列表包含类似[['BTC'], ['ETH'], ['BLA']]
的内容。
如果要避免这种情况,只需将表达式更改为
symbols.append(re.search(r"[A-Z]{3,5}\s\s", i).group().split()[0])