Pandas如何拆分Date列值并生成QTR、YEAR两个新列
实现方法
你用到的df['Date'].str.split(' ', expand=True)已经返回了包含拆分结果的两列DataFrame,直接按列名批量赋值到原DataFrame即可,最简写法如下:
df[['QTR', 'YEAR']] = df['Date'].str.split(' ', expand=True)
如果Date列的两个值之间可能存在多个空格、制表符等空白字符,可以修改split参数适配,避免出现空值:
# \s+ 匹配任意数量的空白字符,兼容性更强 df[['QTR', 'YEAR']] = df['Date'].str.split('\s+', expand=True)
附完整可运行的测试代码:
import pandas as pd # 构造和你场景一致的示例数据 df = pd.DataFrame([ ['aa', 'Q1 2022', 'hi'], ['aa', 'Q1 2022', 'hi'], ['aa', 'Q1 2022', 'hi'] ], columns=['ID', 'Date', 'STAT']) # 拆分生成新列 df[['QTR', 'YEAR']] = df['Date'].str.split(' ', expand=True) # 输出验证结果 print(df)
运行后输出的结果完全符合预期要求。
内容的提问来源于stack exchange,提问作者Lynn
相关产品推荐
相关产品推荐

