import\u0020pandas\u0020as\u0020pd\n\n#\u0020加载Excel文件\n\ndf1\u0020=\u0020pd.read_excel('附件1.xlsx')\n\ndf2\u0020=\u0020pd.read_excel('附件2.xlsx')\n\ndf3\u0020=\u0020pd.read_excel('附件3.xlsx')\n\n#\u0020merged\u0020=\u0020pd.merge(df1, df2, on='单品编码')\n\n#\u0020#\u0020将结果保存到新的Excel文件中\n\n#\u0020merged.to_excel('合并1.xlsx', index=False)\n\n#\u0020对\u0020"单品编码"\u0020列进行分组,并对\u0020"销量(千克)"\u0020列求和\n\ndf2_sales_sum\u0020=\u0020df2.groupby('单品编码')['销量(千克)'].sum().reset_index()\n\ndf3_avg_price\u0020=\u0020df2.groupby('单品编码')['销售单价(元/千克)'].mean().reset_index()\n\ndf3_price\u0020=\u0020df3.groupby('单品编码')['批发价格(元/千克)'].mean().reset_index()\n\n#\u0020Merge\u0020df1\u0020and\u0020df2_sales_sum\u0020based\u0020on\u0020'单品编码'\n\ndf1\u0020=\u0020pd.merge(df1, df2_sales_sum, on='单品编码', how='left')\n\ndf1\u0020=\u0020pd.merge(df1, df3_avg_price, on='单品编码', how='left')\n\ndf1\u0020=\u0020pd.merge(df1, df3_price, on='单品编码', how='left')\n\n#\u0020如果表2中没有在表1中找到匹配的\u0020'单品编码',则将\u0020'销量(千克)'\u0020设置为0\n\ndf1['销量(千克)'].fillna(0, inplace=True)\n\n#\u0020打印结果\n\ndf1.to_excel("数据处理汇总.xlsx", index=False)\n\ndf1['平均定价']\u0020=\u0020(df3['批发价格(元/千克)']\u0020+\u0020df2['销售单价(元/千克)'])\u0020/\u00202\n\n详细解释代码的意思内容:1. 首先导入pandas库。\n2. 使用pd.read_excel函数加载三个Excel文件,分别为df1、df2和df3。\n3. 将df2按照"单品编码"列进行分组,并对"销量(千克)"列进行求和,得到df2_sales_sum。\n4. 将df3按照"单品编码"列进行分组,并分别计算"销售单价(元/千克)"和"批发价格(元/千克)"的平均值,得到df3_avg_price和df3_price。\n5. 使用pd.merge函数将df1与df2_sales_sum进行合并,基于"单品编码"列,使用左连接方式。\n6. 再次使用pd.merge函数将df1与df3_avg_price进行合并,基于"单品编码"列,使用左连接方式。\n7. 最后一次使用pd.merge函数将df1与df3_price进行合并,基于"单品编码"列,使用左连接方式。\n8. 使用fillna函数将df1中的空值(即没有在df2找到匹配的"单品编码")填充为0。\n9. 使用to_excel函数将处理后的df1保存到新的Excel文件中。\n10. 计算平均定价,将df3中的"批发价格(元/千克)"和df2中的"销售单价(元/千克)"相加后除以2,将结果赋值给df1的"平均定价"列。\n11. 打印处理后的df1。

Python Pandas 数据处理:合并、分组、计算并保存到Excel

原文地址: https://www.cveoy.top/t/topic/nLCQ 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录