首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在所有列聚合后重命名所有列

在所有列聚合后重命名所有列
EN

Stack Overflow用户
提问于 2018-08-29 17:47:56
回答 1查看 1K关注 0票数 3

我对dataframe中的所有列执行一个聚合和,代码类似于如下所示:

代码语言:javascript
复制
   df_aggregated = df.groupBy('key').sum()

结果列已经为如下模式更改了他的名称:

代码语言:javascript
复制
   sum(colum1), sum(colum2)

我需要将所有新列的名称更改为以前的名称

我试着使用“别名”,但是我有太多的列,我想要一些更自动的

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-08-29 17:53:13

您可以使用此函数。任何聚合都有相同的模式: xxx(column_name),如果您有一个模式,使用正则表达式来匹配它。

代码语言:javascript
复制
import re

def rename_columns_after_any_aggregation(df):
    for name in df.schema.names:
        clear_name = ''
        m = re.search('\((.*?)\)', name)
        if m:
            clear_name = m.group(1)
            df = df.withColumnRenamed(name, clear_name)

    return df
票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52083433

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档