如何用Python Pandas移除DataFrame中特定字符串后的内容?
问题描述
我有如下所示的DataFrame:
details Pinene 0.16%, Borneol 0.08%, Myrcene 0.12%,Total terpenes content 1.00%, Parents Strains Kandy KushCookie Monster Pinene 0.18%, Borneol 0.08%, Myrcene 0.2%,Total terpenes content 05.00%, Parents Strains Kandy KushCookie Monster
希望移除“Total terpenes content”之后的所有内容,预期得到的DataFrame如下:
details Pinene 0.16%, Borneol 0.08%, Myrcene 0.12%,Total terpenes content 1.00% Pinene 0.18%, Borneol 0.08%, Myrcene 0.2%,Total terpenes content 05.00%
解决方案
使用Pandas的字符串提取方法结合正则表达式,可精准保留到“Total terpenes content”及其后续的百分比数值部分,代码如下:
import pandas as pd # 构造示例数据 data = { 'details': [ 'Pinene 0.16%, Borneol 0.08%, Myrcene 0.12%,Total terpenes content 1.00%, Parents Strains Kandy KushCookie Monster', 'Pinene 0.18%, Borneol 0.08%, Myrcene 0.2%,Total terpenes content 05.00%, Parents Strains Kandy KushCookie Monster' ] } df = pd.DataFrame(data) # 提取目标内容 df['details'] = df['details'].str.extract(r'(.*Total terpenes content \d+\.?\d*%)') print(df)
说明
正则表达式 (.*Total terpenes content \d+\.?\d*%) 的作用是:
.*匹配“Total terpenes content”之前的所有字符Total terpenes content精准匹配目标短语\d+\.?\d*%匹配后续的百分比数值(支持整数、小数形式,比如1.00%或05.00%)- 整个表达式将匹配到的内容提取出来,替换原列值,自动去除后续多余内容。
内容的提问来源于stack exchange,提问作者boyenec
相关产品推荐
相关产品推荐

