{ "cells": [ { "cell_type": "code", "id": "initial_id", "metadata": { "collapsed": true, "ExecuteTime": { "end_time": "2025-04-23T08:34:19.513552Z", "start_time": "2025-04-23T08:34:19.451573Z" } }, "source": [ "import pandas as pd\n", "import re\n", "\n", "df = pd.read_excel(r\"C:\\Users\\Administrator.DESKTOP-7IC2USJ\\Desktop\\新建文件夹\\2025年计划产值汇总.xlsx\",sheet_name=\"2025年计划台次汇总\")\n", "\n", "df_melted = pd.melt(\n", " df,\n", " id_vars=[\"公司\", \"分类\"], # 固定列\n", " var_name=\"月份\", # 新的月份列名\n", " value_name=\"值\" # 新的值列名\n", ")\n", "\n", "df_melted = df_melted.sort_values(by=[\"公司\", \"分类\", \"月份\"]).reset_index(drop=True)\n", "\n", "# 定义年份\n", "year = 2025\n", "print(df_melted[\"月份\"])\n", "# 提取月份中的数字并拼接年份\n", "df_melted[\"月份\"] = df_melted[\"月份\"].apply(lambda x: f\"{year}-{re.findall(r'\\d+', x)[0]}-01\")\n", "\n", "print(\"\\n转换后的数据:\")\n", "print(df_melted)\n", " \n", "df_melted.to_excel(r\"C:\\Users\\Administrator.DESKTOP-7IC2USJ\\Desktop\\新建文件夹\\2025年计划台次汇总.xlsx\",index=False)\n", " " ], "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "0 10月\n", "1 11月\n", "2 12月\n", "3 1月\n", "4 2月\n", " ... \n", "91 5月\n", "92 6月\n", "93 7月\n", "94 8月\n", "95 9月\n", "Name: 月份, Length: 96, dtype: object\n", "\n", "转换后的数据:\n", " 公司 分类 月份 值\n", "0 四元桥奔驰 机修 2025-10-01 833000\n", "1 四元桥奔驰 机修 2025-11-01 943000\n", "2 四元桥奔驰 机修 2025-12-01 973000\n", "3 四元桥奔驰 机修 2025-1-01 918000\n", "4 四元桥奔驰 机修 2025-2-01 745500\n", ".. ... .. ... ...\n", "91 张家口 理赔 2025-5-01 641087\n", "92 张家口 理赔 2025-6-01 756578\n", "93 张家口 理赔 2025-7-01 820006\n", "94 张家口 理赔 2025-8-01 820006\n", "95 张家口 理赔 2025-9-01 795607\n", "\n", "[96 rows x 4 columns]\n" ] } ], "execution_count": 15 } ], "metadata": { "kernelspec": { "display_name": "Python 3", "language": "python", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 2 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython2", "version": "2.7.6" } }, "nbformat": 4, "nbformat_minor": 5 }