如何从pandas DataFrame中提取'tax'与'USD'间的动态数值
解决方案
你可以用正则表达式精准匹配tax与USD之间的数值,补全后的str.extract参数如下:
import pandas as pd d={'75 shares ExD 2022-09-14 PD 2022-10-11 dividend MO.NYSE 70.50 USD (0.94 per share) tax -10.58 USD (-15.000%) DivCntry US USIncmCode 06'} df = pd.DataFrame(d.values(), columns=['description']) # 补全的正则表达式参数 df['tax'] = df['description'].str.extract(r'tax\s+(-?\d+\.\d+)\s+USD') print(df[['tax','description']])
正则表达式说明:
tax\s+:匹配字符串里的tax关键词,以及后面的一个或多个空格(-?\d+\.\d+):核心捕获组,专门提取目标数值:-?:兼容正数和负数,匹配可选的负号\d+:匹配一个或多个整数位数字\.:匹配小数点\d+:匹配一个或多个小数位数字
\s+USD:匹配数值后面的一个或多个空格,以及USD关键词
运行后输出结果:
tax description 0 -10.58 75 shares ExD 2022-09-14 PD 2022-10-11 dividen...
内容的提问来源于stack exchange,提问作者Blaz
相关产品推荐
相关产品推荐

