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

如何将字符列表转换为SQL列?逗号分隔星期字符串转多列问询

实现方法

方法一:Python pandas 处理

先把原始数据构建成DataFrame:

import pandas as pd

df = pd.DataFrame({
    'A': [13, 15, 17],
    'B': ['yes', 'no', 'yes'],
    'C': ['Mon, Thu, Sun', 'Thu, Tue, Fri', 'Sat, Mon, Wen']
})

执行以下步骤转换格式:

  1. 拆分C列字符串并去除空格,转为列表格式
  2. 对列表做独热编码,生成日期对应的0/1列
  3. 调整列顺序为指定的Sun, Mon, Tue, Wen, Thu, Fri, Sat
  4. 合并处理后的日期列与原表的A、B列,删除原C列

对应代码:

# 拆分C列并清理空格
df['C'] = df['C'].str.split(', ').tolist()
# 生成独热编码列
dummies = df['C'].str.join('|').str.get_dummies()
# 按目标顺序调整列
target_cols = ['Sun', 'Mon', 'Tue', 'Wen', 'Thu', 'Fri', 'Sat']
dummies = dummies[target_cols]
# 合并数据得到结果
result = pd.concat([df[['A', 'B']], dummies], axis=1)
print(result)

运行后输出结果:

A    B  Sun  Mon  Tue  Wen  Thu  Fri  Sat
0  13  yes    1    1    0    0    1    0    0
1  15   no    0    0    1    0    1    1    0
2  17  yes    0    1    0    1    0    0    1

方法二:Excel 公式处理

以生成Sun列为例,在D1单元格输入公式:
=IF(ISNUMBER(SEARCH("Sun",$C1)),1,0)
按回车后,将公式横向复制到其他日期列,再纵向复制到所有行,最后隐藏或删除原C列即可得到目标格式。

内容的提问来源于stack exchange,提问作者Jānis

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.23 21:47:15