从datafram中的字符串提取子字符串

2024-06-01 22:44:02 发布

您现在位置:Python中文网/ 问答频道 /正文

我有以下ddataframe:

                             Company Name        Time Expectation
0                Asta Funding Inc. (ASFI)  9:35 AM ET           -
1                       BlackBerry (BBRY)  7:00 AM ET     ($0.03)
2                    Carnival Corp. (CCL)  9:15 AM ET       $0.09
3                      Carnival PLC (CUK)  0:00 AM ET           -

我想把公司符号放在他们自己单独的一栏里,而不是放在公司名称一栏里。现在我只是让它遍历公司名称,a重新提取符号,将其放入列表中,然后将其应用到新列中,但我想知道是否有更干净/更简单的方法。

我对整个地图都不熟悉减少lambda的东西。

for company in df['Company Name']:
    ticker = re.search("\(.*\)",company).group(0)
    ticker = ticker[1:len(ticker)-1]
    tickers.append(ticker)

Tags: name名称time符号公司amcompanyet
2条回答

Regex搜索在pandas的Series类中内置。您可以找到文档here。 在你的情况下,你可以使用

df['ticker'] = df['Company Name'].str.extract("\((.*)\)") 

您可以使用^{}对整个系列执行elementwise操作这一事实。我假设公司的符号将始终位于公司名称的末尾,并被paranteses包围:

df['Company Symbol'] = df['Company Name'].str.rstrip(')').str.split('(').str[1] # Make new column
df['Company Name'] = df['Company Name'].str.replace(r'\(.*?\)$', '') # Remove symbol from company name

相关问题 更多 >