请求指导表格数据转置:将多列Slot数据转换为行格式
宽表转长表数据处理方案
方法一:Google Sheets 内置公式实现
直接在表格里用公式就能快速转换:
- 在空白单元格输入公式:
=QUERY(FLATTEN(ARRAYFORMULA(A2:A&","&B2:D)), "where Col1 is not null", 0) - 回车后自动生成目标格式,自动过滤空值行
公式拆解:
ARRAYFORMULA(A2:A&","&B2:D):把每行日期和对应Slot列拼接成「日期,Slot」格式的字符串FLATTEN():把二维的拼接结果转成一维列表QUERY(...):过滤掉空内容的行,只保留有效数据
方法二:Python 脚本批量处理
适合数据量大或需要自动化的场景:
- 先安装依赖:
pip install pandas - 运行以下脚本:
import pandas as pd # 读取源CSV文件 df = pd.read_csv("source_data.csv") # 将Slot列转换为长格式 long_df = df.melt( id_vars=["Date"], value_vars=["Slot 1", "Slot 2", "Slot 3"], value_name="Slot" ) # 过滤空值并整理格式 final_df = long_df.dropna(subset=["Slot"])[["Date", "Slot"]] # 导出为目标CSV final_df.to_csv("output_data.csv", index=False, header=False)
脚本说明:
melt():专门用于宽表转长表,指定Date为保留列,Slot 1-3为需要拆分的列dropna():剔除Slot为空的无效行to_csv():导出无表头的目标格式CSV
内容的提问来源于stack exchange,提问作者brett
相关产品推荐
相关产品推荐

