列名称列表中最大年份和季度的Python正则表达式

2024-06-16 13:31:53 发布

您现在位置:Python中文网/ 问答频道 /正文

在PySpark中,我有一个数据集,其中列的列表为[...'PC2020Q3', 'PC2020Q4', 'PC2021Q1', 'PC2021Q2'...]。每个季度都会有一个包含实际年份和季度的新列,所以下一个将是'PC2021Q3'。 我想创建一个新的专栏PC_ACT,它将只使用最新的PC

我正在考虑获取列列表,并使用正则表达式查找最大年份和最大季度。比如:

cols = df.schema.names
rx = /regex/
colMax = cols.find(rx)
df = df.withColumn("PC_ACT", F.col(colMax))

正则表达式看起来应该如何始终达到最大值

编辑 有更多不同名称的列。不仅仅是年复一年和季度

多谢各位


Tags: 数据df列表rxactpysparkcols年份
1条回答
网友
1楼 · 发布于 2024-06-16 13:31:53

您可以筛选列,然后取最大值:

import re
colMax = max([ c for c in df.schema.names if re.match(r"PC\d{4}Q\d", c)])

相关问题 更多 >