mdbq 3.7.3__py3-none-any.whl → 3.7.4__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -456,6 +456,117 @@ class MysqlDatasQuery:
456
456
  )
457
457
  return True
458
458
 
459
+ def _sj_wxt(self, db_name='聚合数据', table_name='圣积天猫店_主体报表', is_maximize=True):
460
+ start_date, end_date = self.months_data(num=self.months)
461
+ projection = {
462
+ '日期': 1,
463
+ '场景名字': 1,
464
+ '主体id': 1,
465
+ '花费': 1,
466
+ '展现量': 1,
467
+ '点击量': 1,
468
+ '总购物车数': 1,
469
+ '总成交笔数': 1,
470
+ '总成交金额': 1,
471
+ '自然流量曝光量': 1,
472
+ '直接成交笔数': 1,
473
+ '直接成交金额': 1,
474
+ '店铺名称': 1,
475
+ }
476
+ __res = []
477
+ for year in range(2024, datetime.datetime.today().year+1):
478
+ df = self.download.data_to_df(
479
+ db_name='推广数据_圣积天猫店',
480
+ table_name=f'主体报表_{year}',
481
+ start_date=start_date,
482
+ end_date=end_date,
483
+ projection=projection,
484
+ )
485
+ __res.append(df)
486
+ df = pd.concat(__res, ignore_index=True)
487
+ df.rename(columns={
488
+ '场景名字': '营销场景',
489
+ '主体id': '商品id',
490
+ '总购物车数': '加购量',
491
+ '总成交笔数': '成交笔数',
492
+ '总成交金额': '成交金额'
493
+ }, inplace=True)
494
+ df = df.astype({
495
+ '商品id': str,
496
+ '花费': 'float64',
497
+ '展现量': 'int64',
498
+ '点击量': 'int64',
499
+ '加购量': 'int64',
500
+ '成交笔数': 'int64',
501
+ '成交金额': 'float64',
502
+ '自然流量曝光量': 'int64',
503
+ '直接成交笔数': 'int64',
504
+ '直接成交金额': 'float64',
505
+ }, errors='raise')
506
+ df = df[df['花费'] > 0]
507
+ if is_maximize:
508
+ df = df.groupby(['日期', '店铺名称', '营销场景', '商品id', '花费', '点击量'], as_index=False).agg(
509
+ **{
510
+ '展现量': ('展现量', np.max),
511
+ '加购量': ('加购量', np.max),
512
+ '成交笔数': ('成交笔数', np.max),
513
+ '成交金额': ('成交金额', np.max),
514
+ '自然流量曝光量': ('自然流量曝光量', np.max),
515
+ '直接成交笔数': ('直接成交笔数', np.max),
516
+ '直接成交金额': ('直接成交金额', np.max)
517
+ }
518
+ )
519
+ else:
520
+ df = df.groupby(['日期', '店铺名称', '营销场景', '商品id', '花费', '点击量'], as_index=False).agg(
521
+ **{
522
+ '展现量': ('展现量', np.min),
523
+ '加购量': ('加购量', np.min),
524
+ '成交笔数': ('成交笔数', np.min),
525
+ '成交金额': ('成交金额', np.min),
526
+ '自然流量曝光量': ('自然流量曝光量', np.min),
527
+ '直接成交笔数': ('直接成交笔数', np.max),
528
+ '直接成交金额': ('直接成交金额', np.max)
529
+ }
530
+ )
531
+ df.insert(loc=1, column='推广渠道', value='万相台无界版') # df中插入新列
532
+ set_typ = {
533
+ '日期': 'date',
534
+ '推广渠道': 'varchar(100)',
535
+ '店铺名称': 'varchar(100)',
536
+ '营销场景': 'varchar(100)',
537
+ '商品id': 'bigint',
538
+ '花费': 'decimal(12,2)',
539
+ '展现量': 'int',
540
+ '点击量': 'int',
541
+ '加购量': 'int',
542
+ '成交笔数': 'int',
543
+ '成交金额': 'decimal(12,2)',
544
+ '自然流量曝光量': 'int',
545
+ '直接成交笔数': 'int',
546
+ '直接成交金额': 'decimal(12,2)',
547
+ }
548
+
549
+ if not self.update_service:
550
+ return
551
+ min_date = df['日期'].min()
552
+ max_date = df['日期'].max()
553
+ now = datetime.datetime.now().strftime("%Y-%m-%d %H:%M:%S")
554
+ logger.info(f'{now} 正在更新: mysql ({host}:{port}) {db_name}/{table_name} -> {min_date}~{max_date}')
555
+ m_engine.df_to_mysql(
556
+ df=df,
557
+ db_name=db_name,
558
+ table_name=table_name,
559
+ # icm_update=['日期', '推广渠道', '营销场景', '商品id', '花费'], # 增量更新, 在聚合数据中使用,其他不要用
560
+ move_insert=True, # 先删除,再插入
561
+ df_sql=False, # 值为 True 时使用 df.to_sql 函数上传整个表, 不会排重
562
+ drop_duplicates=False, # 值为 True 时检查重复数据再插入,反之直接上传,会比较慢
563
+ count=None,
564
+ filename=None, # 用来追踪处理进度
565
+ reset_id=True, # 是否重置自增列
566
+ set_typ=set_typ,
567
+ )
568
+ return True
569
+
459
570
  @try_except
460
571
  def syj(self, db_name='聚合数据', table_name='生意经_宝贝指标'):
461
572
  start_date, end_date = self.months_data(num=self.months)
@@ -2366,6 +2477,32 @@ class MysqlDatasQuery:
2366
2477
  '成交金额': ('总成交金额', np.max)
2367
2478
  }
2368
2479
  )
2480
+ # sj圣积
2481
+ __res = []
2482
+ for year in range(2024, datetime.datetime.today().year + 1):
2483
+ df_sj = self.download.data_to_df(
2484
+ db_name='推广数据_圣积天猫店',
2485
+ table_name=f'营销场景报表_{year}',
2486
+ start_date=start_date,
2487
+ end_date=end_date,
2488
+ projection=projection,
2489
+ )
2490
+ __res.append(df_sj)
2491
+ df_sj = pd.concat(__res, ignore_index=True)
2492
+ if len(df_sj) > 0:
2493
+ df_sj.rename(columns={'场景名字': '营销场景'}, inplace=True)
2494
+ df_sj['店铺名称'] = df_sj['店铺名称'].apply(lambda x: 'saintJack旗舰店' if x == 'SAINTJACK旗舰店' else x)
2495
+ df_sj = df_sj.groupby(
2496
+ ['日期', '店铺名称', '场景id', '营销场景', '花费', '展现量'],
2497
+ as_index=False).agg(
2498
+ **{
2499
+ # '展现量': ('展现量', np.max),
2500
+ '点击量': ('点击量', np.max),
2501
+ '加购量': ('总购物车数', np.max),
2502
+ '成交笔数': ('总成交笔数', np.max),
2503
+ '成交金额': ('总成交金额', np.max)
2504
+ }
2505
+ )
2369
2506
  # 淘宝店
2370
2507
  __res = []
2371
2508
  for year in range(2024, datetime.datetime.today().year + 1):
@@ -2600,7 +2737,7 @@ class MysqlDatasQuery:
2600
2737
  df_jd_qzyx = df_jd_qzyx[['日期', '店铺名称', '营销场景', '花费', '展现量', '点击量', '成交笔数', '成交金额']]
2601
2738
  df_jd_qzyx = df_jd_qzyx[df_jd_qzyx['花费'] > 0]
2602
2739
 
2603
- _datas = [item for item in [df_tm, df_tb, df_tb_qzt, df_al, df_tm_pxb, df_tm_living, df_jd, df_jd_qzyx] if len(item) > 0] # 阻止空的 dataframe
2740
+ _datas = [item for item in [df_tm, df_tb, df_tb_qzt, df_al, df_sj, df_tm_pxb, df_tm_living, df_jd, df_jd_qzyx] if len(item) > 0] # 阻止空的 dataframe
2604
2741
  df = pd.concat(_datas, axis=0, ignore_index=True)
2605
2742
  df['日期'] = pd.to_datetime(df['日期'], format='%Y-%m-%d', errors='ignore') # 转换日期列
2606
2743
  df = df.groupby(
@@ -3604,6 +3741,7 @@ def query1(months=1, less_dict=[]):
3604
3741
  sdq.update_service = True # 调试时加,true: 将数据写入 mysql 服务器
3605
3742
 
3606
3743
  sdq._ald_wxt(db_name='聚合数据', table_name='奥莱店_主体报表')
3744
+ sdq._sj_wxt(db_name='聚合数据', table_name='圣积天猫店_主体报表')
3607
3745
  sdq._tb_wxt(db_name='聚合数据', table_name='淘宝_主体报表')
3608
3746
  sdq.tg_wxt(db_name='聚合数据', table_name='天猫_主体报表')
3609
3747
  sdq.syj(db_name='聚合数据', table_name='生意经_宝贝指标')
@@ -979,7 +979,7 @@ if __name__ == '__main__':
979
979
  password=password,
980
980
  host=host,
981
981
  port=port,
982
- heads=30,
982
+ heads=100,
983
983
  col_name='白底图',
984
984
  save_path=os.path.join(upload_path, '商品id_商家编码_图片'),
985
985
  )
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: mdbq
3
- Version: 3.7.3
3
+ Version: 3.7.4
4
4
  Home-page: https://pypi.org/project/mdbq
5
5
  Author: xigua,
6
6
  Author-email: 2587125111@qq.com
@@ -4,7 +4,7 @@ mdbq/aggregation/__init__.py,sha256=EeDqX2Aml6SPx8363J-v1lz0EcZtgwIBYyCJV6CcEDU,
4
4
  mdbq/aggregation/aggregation_bak.py,sha256=-yzApnlqSN2L0E1YMu5ml-W827qpKQvWPCOI7jj2kzY,80264
5
5
  mdbq/aggregation/datashow_bak.py,sha256=1AYSIDkdUx-4as1Ax2rPj0cExM9d-qFMrFYLAaPHNuk,54962
6
6
  mdbq/aggregation/optimize_data.py,sha256=foZGLDGJRhM2qOr2mTvB3InDFId7r4KBXrJfB3-xq1k,2639
7
- mdbq/aggregation/query_data.py,sha256=AiG0W9Rum_hKCTPNB-nuA5ehpnVW12byLA7uwzOmO6Q,168639
7
+ mdbq/aggregation/query_data.py,sha256=wYsBTRx6vmZ-dKQRdl_pnOPcI2djyIIb92MOUy097E0,174930
8
8
  mdbq/bdup/__init__.py,sha256=AkhsGk81SkG1c8FqDH5tRq-8MZmFobVbN60DTyukYTY,28
9
9
  mdbq/bdup/bdup.py,sha256=hJs815hGFwm_X5bP2i9XugG2w2ZY_F0n3-Q0hVpIPPw,4892
10
10
  mdbq/config/__init__.py,sha256=jso1oHcy6cJEfa7udS_9uO5X6kZLoPBF8l3wCYmr5dM,18
@@ -24,7 +24,7 @@ mdbq/mysql/mysql.py,sha256=YgmSLkwjIUpjiGH3S-bTiaJCKe8As0WvHDOS6_ePyYs,98591
24
24
  mdbq/mysql/s_query.py,sha256=pj5ioJfUT81Su9S-km9G49gF5F2MmXXfw_oAIUzhN28,8794
25
25
  mdbq/mysql/year_month_day.py,sha256=VgewoE2pJxK7ErjfviL_SMTN77ki8GVbTUcao3vFUCE,1523
26
26
  mdbq/other/__init__.py,sha256=jso1oHcy6cJEfa7udS_9uO5X6kZLoPBF8l3wCYmr5dM,18
27
- mdbq/other/download_sku_picture.py,sha256=-ia7KIu7Ij3huWF7tXVrWEE7N4QwJfWDbBIP4pVzcQ4,44655
27
+ mdbq/other/download_sku_picture.py,sha256=B5WA2-CQds2l36w4gLs1cgqzWqC1mbQTozqwb3vUQh0,44656
28
28
  mdbq/other/porxy.py,sha256=UHfgEyXugogvXgsG68a7QouUCKaohTKKkI4RN-kYSdQ,4961
29
29
  mdbq/other/pov_city.py,sha256=AEOmCOzOwyjHi9LLZWPKi6DUuSC-_M163664I52u9qw,21050
30
30
  mdbq/other/sku_picture_bak.py,sha256=JwSXYlzamVqcKCD2tRH2VqYVZNr8fM6f--kcGlTVRnM,50026
@@ -37,7 +37,7 @@ mdbq/redis/__init__.py,sha256=YtgBlVSMDphtpwYX248wGge1x-Ex_mMufz4-8W0XRmA,12
37
37
  mdbq/redis/getredis.py,sha256=oyFwE-8c6uErSGYNIO0z2ng93mH0zstRLD86MWqF6M8,25636
38
38
  mdbq/spider/__init__.py,sha256=RBMFXGy_jd1HXZhngB2T2XTvJqki8P_Fr-pBcwijnew,18
39
39
  mdbq/spider/aikucun.py,sha256=qMU29gb72OK8GLBD-zENo1EmxuojRnuPyEdk5S2KDKw,21767
40
- mdbq-3.7.3.dist-info/METADATA,sha256=p1jDAm3j6h9URD3CFONyKgTu0lFAgpy3dxWkn0Q5tnA,243
41
- mdbq-3.7.3.dist-info/WHEEL,sha256=eOLhNAGa2EW3wWl_TU484h7q1UNgy0JXjjoqKoxAAQc,92
42
- mdbq-3.7.3.dist-info/top_level.txt,sha256=2FQ-uLnCSB-OwFiWntzmwosW3X2Xqsg0ewh1axsaylA,5
43
- mdbq-3.7.3.dist-info/RECORD,,
40
+ mdbq-3.7.4.dist-info/METADATA,sha256=oviqiqBpDqxScLXtRS6FhvAg-WudJQX_--ykPyP9zlM,243
41
+ mdbq-3.7.4.dist-info/WHEEL,sha256=eOLhNAGa2EW3wWl_TU484h7q1UNgy0JXjjoqKoxAAQc,92
42
+ mdbq-3.7.4.dist-info/top_level.txt,sha256=2FQ-uLnCSB-OwFiWntzmwosW3X2Xqsg0ewh1axsaylA,5
43
+ mdbq-3.7.4.dist-info/RECORD,,
File without changes