2024-09-28 05:27:55 发布
网友
我是PySpark的新手,想更改我的列名,因为大多数列名都有一个讨厌的前缀。 我的列名如下:
e1013_var1 e1014_var2 e1015_var3 Data_date_stamp
如果存在,我想从列名中删除EXXX_,怎么做?因为我也希望所有内容都是大写的,所以到目前为止,我的代码是这样的
EXXX_
for col in df.columns: df= df.withColumnRenamed(col, col.upper())
感谢您的帮助,谢谢
一个避免for循环的选项是使用^{}重命名Spark数据帧的所有列
import re df_new = df.toDF(*[re.sub('e\d+_', '', c).upper() for c in df.columns]) print(df_new.columns) # ['VAR1', 'VAR2', 'VAR3', 'DATA_DATE_STAMP']
假设恼人的前缀的格式为e[digits]_,我们可以使用re.sub:
e[digits]_
re.sub
import re for col in df.columns: new_col = re.sub(r"e\d+_", "", col).upper() df = df.withColumnRenamed(col, new_col)
一个避免for循环的选项是使用^{} 重命名Spark数据帧的所有列
假设恼人的前缀的格式为
e[digits]_
,我们可以使用re.sub
:相关问题 更多 >
编程相关推荐