Pandas:筛选DataFrame子集、分组并修改标题列值
解决DataFrame筛选与标题修改问题
步骤1:筛选目标行
通过布尔索引精准筛选出B列包含'Myprotein NL'且C列为'CLOTHING'的行,用.copy()避免链式赋值警告:
import pandas as pd # 假设你的DataFrame名为df filtered_df = df[(df['B'].str.contains('Myprotein NL')) & (df['C'] == 'CLOTHING')].copy()
步骤2:定义标题清洗函数
根据需求拆分标题并移除尺寸信息。假设尺寸是标题最后一个以空格分隔的部分,定义函数如下:
def remove_size_from_title(title): title_parts = title.split() # 拆分后有多个部分则移除最后一项(尺寸)再拼接,否则返回原标题 return ' '.join(title_parts[:-1]) if len(title_parts) > 1 else title
如果尺寸是带括号的格式(如(L)),可以改用正则匹配移除:
import re def remove_size_from_title(title): # 匹配常见尺寸格式,支持带括号的情况 return re.sub(r'\s*\(?([SLX]M|L|XL|XXL|XS)\)?$', '', title).strip()
步骤3:按D列分组后修改标题列
用groupby结合transform,对每个D分组内的标题列(替换为你实际的标题列名,比如标题或A)应用清洗函数:
filtered_df['标题'] = filtered_df.groupby('D')['标题'].transform(remove_size_from_title)
内容的提问来源于stack exchange,提问作者Lookszz
相关产品推荐
相关产品推荐

