如何基于Col_X的季度标记新增Q1-Q4四个取值为0或1的列?
季度独热编码列生成解决方案
以下是不同常用场景下的实现方法:
1. Python(Pandas环境)
两种实现方式可选,手动映射可控性更高:
import pandas as pd # 方法1:使用内置独热编码方法直接生成 df[['Q1', 'Q2', 'Q3', 'Q4']] = pd.get_dummies(df['Col_X'], dtype=int) # 方法2:手动逐列映射规则 df['Q1'] = df['Col_X'].apply(lambda x: 1 if x == 1 else 0) df['Q2'] = df['Col_X'].apply(lambda x: 1 if x == 2 else 0) df['Q3'] = df['Col_X'].apply(lambda x: 1 if x == 3 else 0) df['Q4'] = df['Col_X'].apply(lambda x: 1 if x == 4 else 0)
2. Excel/WPS 表格环境
假设Col_X列对应表格的C列,首行数据在第2行,对应Q列输入以下公式后下拉填充全列即可:
- Q1列公式:
=IF(C2=1,1,0) - Q2列公式:
=IF(C2=2,1,0) - Q3列公式:
=IF(C2=3,1,0) - Q4列公式:
=IF(C2=4,1,0)
3. SQL 环境
使用CASE WHEN语句生成对应字段即可:
SELECT ID, Dates, Col_X, Col_Y, CASE WHEN Col_X = 1 THEN 1 ELSE 0 END AS Q1, CASE WHEN Col_X = 2 THEN 1 ELSE 0 END AS Q2, CASE WHEN Col_X = 3 THEN 1 ELSE 0 END AS Q3, CASE WHEN Col_X = 4 THEN 1 ELSE 0 END AS Q4 FROM 你的数据表名;
内容的提问来源于stack exchange,提问作者Leonardo
相关产品推荐
相关产品推荐

