如何在Microsoft Excel中将2022年蒙特利尔自行车流量数据集转为2023年格式?
蒙特利尔自行车流量数据集格式转换方案
针对你需要将2022年宽表格式的自行车流量数据转换为2023年窄表(每行对应一个Datetime+流量值)格式的需求,以下是两种可靠的解决方法,解决Excel转置函数无法处理的Datetime排序问题:
方法一:Excel Power Query(可视化操作,适合非编程用户)
- 导入数据到Power Query
选中2022年数据区域,点击「数据」选项卡 →「从表格/区域」,勾选「我的表格有标题」,进入Power Query编辑器。 - 逆透视小时列
选中日期列(如「Date」),点击「转换」选项卡 →「逆透视列」→「逆透视其他列」。此时所有小时列会被转为「属性」(小时值,如00:00)和「值」(对应流量)两列。 - 生成标准Datetime列
添加自定义列,输入公式= [Date] + Time.From([属性]),将新列命名为「Datetime」。 - 整理列结构
删除原「Date」和「属性」列,将「Datetime」列移至首位,把「值」列重命名为和2023年一致的名称(如「Bike Count」)。 - 排序并导出
选中「Datetime」列,点击「开始」选项卡 →「排序升序」,最后点击「关闭并上载」,即可得到与2023年格式完全一致的数据集。
方法二:Python Pandas(适合批量/自动化处理)
如果需要重复处理或数据量较大,用Pandas代码可以快速完成转换:
import pandas as pd # 读取2022年Excel数据(确保Date列被解析为日期格式) df_2022 = pd.read_excel("2022_bike_data.xlsx", parse_dates=["Date"]) # 将宽表转为窄表,拆分日期和小时 df_melted = df_2022.melt(id_vars=["Date"], var_name="Hour", value_name="Bike Count") # 组合日期与小时为标准Datetime df_melted["Datetime"] = pd.to_datetime(df_melted["Date"].astype(str) + " " + df_melted["Hour"]) # 整理列顺序并按Datetime排序 df_final = df_melted[["Datetime", "Bike Count"]].sort_values("Datetime").reset_index(drop=True) # 导出为Excel文件 df_final.to_excel("2022_bike_data_standardized.xlsx", index=False)
内容的提问来源于stack exchange,提问作者harmonben85
相关产品推荐
相关产品推荐

