当前位置: 首页 > wzjs >正文

亚马逊欧洲站入口网址杭州专业seo服务公司

亚马逊欧洲站入口网址,杭州专业seo服务公司,c2c电子商务平台有哪些,儿童编程哪家培训机构好前提要景: 公司有多个电商平台,需要自己每天从不同地方下载数据,整理成每日的销售日报。 使用PQ去 清洗整理 会使文件过大,筛选的时候会卡顿。 使用数据库会让表简洁明了。 import numpy as np import pandas as pd import sqlalc…

前提要景:

公司有多个电商平台,需要自己每天从不同地方下载数据,整理成每日的销售日报。

使用PQ去 清洗+整理 会使文件过大,筛选的时候会卡顿。

使用数据库会让表简洁明了。

import numpy as np
import pandas as pd
import sqlalchemy as sa
from sqlalchemy import create_engine
from datetime import datedef main():# ==================== 数据库连接配置 ====================db_config = {'user': 'your_username','password': 'your_password','host': 'localhost','port': 3306,'database': 'your_database'}connection_url = (f"mysql+pymysql://{db_config['user']}:{db_config['password']}"f"@{db_config['host']}:{db_config['port']}/{db_config['database']}")engine = create_engine(connection_url)try:# 获取今日日期today = date.today().strftime('%Y-%m-%d')# 获取明天日期用于范围查询tomorrow = (date.today() + timedelta(days=1)).strftime('%Y-%m-%d')# ==================== 数据读取 ====================df_orders = pd.read_sql("SELECT * FROM sale WHERE 发货时间 BETWEEN '2023-01-01' AND '2023-12-31'"engine)df_shops = pd.read_sql("SELECT * FROM base_shop", engine)df_products = pd.read_sql("SELECT * FROM base_goods", engine)# ==================== 数据清洗 ====================columns_to_drop = ["仓库", "成本", "价格"]existing_drop_cols = [col for col in columns_to_drop if col in df_orders.columns]orders_clean = df_orders.drop(columns=existing_drop_cols)# ==================== 合并商品信息 ====================product_cols = ['品名', '产品', '主计量单位', '主计量数量','计量单位2', '计量数量2']df_merged = pd.merge(orders_clean,df_products[product_cols],on='品名',how='left',validate="m:1")# ==================== 单位换算 ====================conditions = [df_merged['单位'] == df_merged['主计量单位'],df_merged['单位'] == df_merged['计量单位2']]choices = [df_merged['数量'] * df_merged['主计量数量'],df_merged['数量'] * df_merged['计量数量2']]df_merged['Total'] = np.select(conditions, choices, default=np.nan)# ==================== 合并店铺信息 ====================shop_cols = ['店铺']df_merged = pd.merge(df_merged,df_shops[shop_cols],on='店铺',how='left',suffixes=('', '_shop'))# ==================== 日期处理 ====================# 重命名日期列并转换类型df_merged.rename(columns={'发货时间': '日期'}, inplace=True)df_merged['日期'] = pd.to_datetime(df_merged['日期'], errors='coerce')# ==================== 按日期汇总 ====================group_cols = ['日期', '产品']final_summary = df_merged.groupby(group_cols)['Total'].sum().reset_index()# ==================== 提取年月 ====================final_summary['年'] = final_summary['日期'].dt.yearfinal_summary['月'] = final_summary['日期'].dt.month# ==================== 数据存储 ====================table_name = 'emoc_daily_summary'try:final_summary.to_sql(table_name,engine,if_exists='append',index=False,dtype={'日期': sa.Date(),'产品': sa.String(50),'Total': sa.Numeric(12,2),'年': sa.Integer(),'月': sa.Integer()})print(f"成功追加 {len(final_summary)} 条记录")except sa.exc.ProgrammingError as pe:if "1146" in str(pe):  # 处理表不存在的情况print("目标表不存在,正在创建新表...")final_summary.to_sql(table_name,engine,if_exists='fail',index=False,dtype={# 保持与上述相同的类型定义})print(f"成功创建表并写入 {len(final_summary)} 条记录")else:raiseexcept Exception as e:print(f"处理失败:{str(e)}")raiseif __name__ == "__main__":main()

  

产品存在单位转换,需要都转换为最小单位

改进前:

# 步骤:单位转换逻辑(增加空值处理)
def convert_quantity(row):try:order_unit = row['单位']order_qty = row['数量']# 处理可能的空值if pd.isna(order_unit) or pd.isna(row['主计量单位']):print(f"单位缺失:商品 {row['品名']}")return Noneif order_unit == row['主计量单位']:return order_qty * row['主计量数量']elif order_unit == row['计量单位2']:return order_qty * row['计量数量2']else:print(f"单位不匹配:商品 {row['品名']} 单位 {order_unit}")return Noneexcept KeyError as e:print(f"列缺失错误:{str(e)}")return None

改进后:

进行性能优化

# 使用矢量化操作替代apply
conditions = [df_merged['单位'] == df_merged['主计量单位'],df_merged['单位'] == df_merged['计量单位2'],df_merged['单位'] == df_merged['计量单位3']
]
choices = [df_merged['数量'] * df_merged['主计量数量'],df_merged['数量'] * df_merged['计量数量2'],df_merged['数量'] * df_merged['计量数量3']
]
df_merged['Total'] = np.select(conditions, choices, default=np.nan)
http://www.dtcms.com/wzjs/475442.html

相关文章:

  • 郑州外贸网站建设公司排名山东疫情最新情况
  • 泉州一个网站多少钱一个产品的营销方案
  • 做网站域名 空间东莞seo公司
  • 真正免费的网站建站平台排名网络软文是什么
  • 南京网站排名外包百度优化
  • 撰写网站建设技术解决方案上海网站营销推广
  • 站长之家模板谷歌seo推广服务
  • 唐山建设局网站北京seo平台
  • 自己有服务器怎么搭建网站百度云官网
  • 用户体验设计流程西安seo网站管理
  • 一整套室内设计方案ppt镇江seo公司
  • 网站建设软件用乐云践新seo是什么东西
  • 网站建设公司的业务规划百度搜索风云榜游戏
  • 荆州网站建设百度问答seo
  • 贵州省遵义市红花岗区疫情最新消息seo运营是做什么的
  • 免费3d模型素材网站口碑营销案例
  • 大连开发区网站开发公司电话seo基础知识
  • 影视公司网站设计百度下载安装app
  • 懂得做网站还可以做什么兼职兰州网络推广电话
  • 做淘宝客网站域名是别人的电子商务专业就业方向
  • 鞍山网站建设联系方式百度网盘下载慢
  • 广州市疫情最新消息网站seo综合诊断
  • 税务编码 做网站选什么唐山seo快速排名
  • 网站目录访问百度搜索量最大的关键词
  • 石家庄网站建设推广公司电话软文营销的成功案例
  • 网站建设方案推荐十大基本营销方式
  • 安陆市建设局网站怎么自己做网站推广
  • 做网络课堂的平台有哪些网站宁波seo教程
  • 西安专业做网站建跨境电商seo是什么意思
  • 如何做网站公众号推广谷歌浏览器下载安装