Pandas中如何为多列分组命名并批量应用函数?
在Pandas中给指定列组命名并批量应用函数
完全可以实现,核心思路是先把需要处理的多列集合定义成一个变量,之后直接用这个变量指代列组来操作,避免重复写一长串列名。下面是几种实用的实现方式:
1. 直接定义列组变量(最常用)
先把目标列名存成一个变量,后续所有操作都直接引用这个变量:
# 定义你的列组,把所有需要的列名列出来,也可以用生成式简化(比如列名是One到Sixty的话) target_cols = ['One', 'Two', ..., 'Sixty'] # 或者用循环生成:[f'Col{i}' for i in range(1,61)] # 对列组应用你需要的函数 df[target_cols] = df[target_cols].apply(lambda x: x.astype(str).str.lower())
2. 封装处理函数应对多步骤操作
如果要给列组应用多个函数,把处理逻辑封装成单独的函数会更清晰:
def process_target_cols(col): # 这里可以添加多个处理步骤 col = col.astype(str).str.lower() col = col.str.strip() # 比如再加个去除首尾空格的操作 return col target_cols = ['One', 'Two', ..., 'Sixty'] df[target_cols] = df[target_cols].apply(process_target_cols)
3. 用字典管理多组列(适合复杂场景)
如果有多个不同的列组需要分别处理,可以把它们存在字典里,方便分类管理:
column_groups = { 'lowercase_group': ['One', 'Two', ..., 'Sixty'], 'numeric_process_group': ['ColA', 'ColB', 'ColC'] } # 对lowercase_group列组应用函数 df[column_groups['lowercase_group']] = df[column_groups['lowercase_group']].apply(lambda x: x.astype(str).str.lower())
这样不管列数量有多少,只要提前定义好列组变量,后续操作就会非常简洁,完全符合你想要的效果。
内容的提问来源于stack exchange,提问作者Anya Pilipentseva
相关产品推荐
相关产品推荐

