【发布时间】:2019-08-06 06:01:35
【问题描述】:
我有一个数据框,我想在双倍空格后提取内容。对于NAME 列中的所有行,在公司名称之后的整数之前有一个双空格。
NAME INVESTMENT PERCENT
0 APPLE COMPANY A 57 638 232 stocks OIL LTD 0.12322
1 BANANA 1 COMPANY B 12 946 201 stocks GOLD LTD 0.02768
2 ORANGE COMPANY C 8 354 229 stocks GAS LTD 0.01786
df = pd.DataFrame({
'NAME': ['APPLE COMPANY A 57 638 232 stocks', 'BANANA 1 COMPANY B 12 946 201 stocks', 'ORANGE COMPANY C 8 354 229 stocks'],
'PERCENT': [0.12322, 0.02768 , 0.01786]
})
我之前有这个,但它在公司名称中也包含整数:
df['STOCKS']=df['NAME'].str.findall(r'\b\d+\b').apply(lambda x: ''.join(x))
相反,我尝试在双空格后提取
df['NAME'].str.split('(\s{2})')
给出输出:
0 [APPLE COMPANY A, , 57 638 232 stocks]
1 [BANANA 1 COMPANY B, , 12 946 201 stocks]
2 [ORANGE COMPANY C, , 8 354 229 stocks]
但是,我希望将出现在双空格之后的整数连接/合并并放入新列中。
NAME PERCENT STOCKS
0 APPLE COMPANY A 0.12322 57638232
1 BANANA 1 COMPANY B 0.02768 12946201
2 ORANGE COMPANY C 0.01786 12946201
如何修改我的第二个函数来做我想做的事?
【问题讨论】:
-
为什么要使用正则表达式?它很慢,您也可以拆分为 2 个空格 (
.split(' ')),我假设通过删除您的第一列并创建一个新列,同时将内容放入其中就可以了
标签: python regex pandas extract