You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

PySpark如何批量删除DataFrame列名中的.0字符实现批量重命名

PySpark批量移除列名中.0字符的操作方案

你可以任选以下两种常用实现方式:

方式1:使用select批量重命名(推荐,性能更高)

直接遍历列名做替换后用select一次性完成重命名,适合列数量较多的场景:

from pyspark.sql.functions import col

# 遍历所有列名,替换`.0`后为列设置别名
processed_cols = [col(col_name).alias(col_name.replace('.0', '')) for col_name in spark_df.columns]
# 生成重命名后的新DataFrame
spark_df_new = spark_df.select(processed_cols)

如果你担心列名中间可能出现.0、只想替换末尾的.0后缀,可以调整为如下写法:

from pyspark.sql.functions import col

processed_cols = []
for col_name in spark_df.columns:
    if col_name.endswith('.0'):
        # 仅截取掉末尾的`.0`
        new_name = col_name[:-2]
    else:
        new_name = col_name
    processed_cols.append(col(col_name).alias(new_name))

spark_df_new = spark_df.select(processed_cols)

方式2:循环调用withColumnRenamed

写法更直观,列数少的时候可以用:

spark_df_new = spark_df
for old_col in spark_df.columns:
    new_col = old_col.replace('.0', '')
    spark_df_new = spark_df_new.withColumnRenamed(old_col, new_col)

操作完成后你可以执行spark_df_new.columns验证重命名结果。

内容的提问来源于stack exchange,提问作者Nabih Bawazir

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.05 23:18:04