mdbq 2.9.9__tar.gz → 3.0.1__tar.gz

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.
Files changed (54) hide show
  1. {mdbq-2.9.9 → mdbq-3.0.1}/PKG-INFO +1 -1
  2. {mdbq-2.9.9 → mdbq-3.0.1}/mdbq/aggregation/query_data.py +80 -19
  3. {mdbq-2.9.9 → mdbq-3.0.1}/mdbq/mysql/mysql.py +0 -6
  4. {mdbq-2.9.9 → mdbq-3.0.1}/mdbq.egg-info/PKG-INFO +1 -1
  5. {mdbq-2.9.9 → mdbq-3.0.1}/setup.py +1 -1
  6. {mdbq-2.9.9 → mdbq-3.0.1}/README.txt +0 -0
  7. {mdbq-2.9.9 → mdbq-3.0.1}/mdbq/__init__.py +0 -0
  8. {mdbq-2.9.9 → mdbq-3.0.1}/mdbq/__version__.py +0 -0
  9. {mdbq-2.9.9 → mdbq-3.0.1}/mdbq/aggregation/__init__.py +0 -0
  10. {mdbq-2.9.9 → mdbq-3.0.1}/mdbq/aggregation/aggregation.py +0 -0
  11. {mdbq-2.9.9 → mdbq-3.0.1}/mdbq/aggregation/df_types.py +0 -0
  12. {mdbq-2.9.9 → mdbq-3.0.1}/mdbq/aggregation/mysql_types.py +0 -0
  13. {mdbq-2.9.9 → mdbq-3.0.1}/mdbq/aggregation/optimize_data.py +0 -0
  14. {mdbq-2.9.9 → mdbq-3.0.1}/mdbq/aggregation/query_data_bak.py +0 -0
  15. {mdbq-2.9.9 → mdbq-3.0.1}/mdbq/bdup/__init__.py +0 -0
  16. {mdbq-2.9.9 → mdbq-3.0.1}/mdbq/bdup/bdup.py +0 -0
  17. {mdbq-2.9.9 → mdbq-3.0.1}/mdbq/clean/__init__.py +0 -0
  18. {mdbq-2.9.9 → mdbq-3.0.1}/mdbq/clean/clean_upload.py +0 -0
  19. {mdbq-2.9.9 → mdbq-3.0.1}/mdbq/clean/data_clean.py +0 -0
  20. {mdbq-2.9.9 → mdbq-3.0.1}/mdbq/company/__init__.py +0 -0
  21. {mdbq-2.9.9 → mdbq-3.0.1}/mdbq/company/copysh.py +0 -0
  22. {mdbq-2.9.9 → mdbq-3.0.1}/mdbq/config/__init__.py +0 -0
  23. {mdbq-2.9.9 → mdbq-3.0.1}/mdbq/config/get_myconf.py +0 -0
  24. {mdbq-2.9.9 → mdbq-3.0.1}/mdbq/config/myconfig.py +0 -0
  25. {mdbq-2.9.9 → mdbq-3.0.1}/mdbq/config/products.py +0 -0
  26. {mdbq-2.9.9 → mdbq-3.0.1}/mdbq/config/set_support.py +0 -0
  27. {mdbq-2.9.9 → mdbq-3.0.1}/mdbq/config/update_conf.py +0 -0
  28. {mdbq-2.9.9 → mdbq-3.0.1}/mdbq/dataframe/__init__.py +0 -0
  29. {mdbq-2.9.9 → mdbq-3.0.1}/mdbq/dataframe/converter.py +0 -0
  30. {mdbq-2.9.9 → mdbq-3.0.1}/mdbq/log/__init__.py +0 -0
  31. {mdbq-2.9.9 → mdbq-3.0.1}/mdbq/log/mylogger.py +0 -0
  32. {mdbq-2.9.9 → mdbq-3.0.1}/mdbq/mongo/__init__.py +0 -0
  33. {mdbq-2.9.9 → mdbq-3.0.1}/mdbq/mongo/mongo.py +0 -0
  34. {mdbq-2.9.9 → mdbq-3.0.1}/mdbq/mysql/__init__.py +0 -0
  35. {mdbq-2.9.9 → mdbq-3.0.1}/mdbq/mysql/recheck_mysql.py +0 -0
  36. {mdbq-2.9.9 → mdbq-3.0.1}/mdbq/mysql/s_query.py +0 -0
  37. {mdbq-2.9.9 → mdbq-3.0.1}/mdbq/mysql/year_month_day.py +0 -0
  38. {mdbq-2.9.9 → mdbq-3.0.1}/mdbq/other/__init__.py +0 -0
  39. {mdbq-2.9.9 → mdbq-3.0.1}/mdbq/other/porxy.py +0 -0
  40. {mdbq-2.9.9 → mdbq-3.0.1}/mdbq/other/pov_city.py +0 -0
  41. {mdbq-2.9.9 → mdbq-3.0.1}/mdbq/other/sku_picture.py +0 -0
  42. {mdbq-2.9.9 → mdbq-3.0.1}/mdbq/other/ua_sj.py +0 -0
  43. {mdbq-2.9.9 → mdbq-3.0.1}/mdbq/pbix/__init__.py +0 -0
  44. {mdbq-2.9.9 → mdbq-3.0.1}/mdbq/pbix/pbix_refresh.py +0 -0
  45. {mdbq-2.9.9 → mdbq-3.0.1}/mdbq/pbix/refresh_all.py +0 -0
  46. {mdbq-2.9.9 → mdbq-3.0.1}/mdbq/pbix/refresh_all_old.py +0 -0
  47. {mdbq-2.9.9 → mdbq-3.0.1}/mdbq/req_post/__init__.py +0 -0
  48. {mdbq-2.9.9 → mdbq-3.0.1}/mdbq/req_post/req_tb.py +0 -0
  49. {mdbq-2.9.9 → mdbq-3.0.1}/mdbq/spider/__init__.py +0 -0
  50. {mdbq-2.9.9 → mdbq-3.0.1}/mdbq/spider/aikucun.py +0 -0
  51. {mdbq-2.9.9 → mdbq-3.0.1}/mdbq.egg-info/SOURCES.txt +0 -0
  52. {mdbq-2.9.9 → mdbq-3.0.1}/mdbq.egg-info/dependency_links.txt +0 -0
  53. {mdbq-2.9.9 → mdbq-3.0.1}/mdbq.egg-info/top_level.txt +0 -0
  54. {mdbq-2.9.9 → mdbq-3.0.1}/setup.cfg +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: mdbq
3
- Version: 2.9.9
3
+ Version: 3.0.1
4
4
  Home-page: https://pypi.org/project/mdbq
5
5
  Author: xigua,
6
6
  Author-email: 2587125111@qq.com
@@ -1027,8 +1027,8 @@ class MysqlDatasQuery:
1027
1027
  ) # 制作其他聚合表
1028
1028
  if not self.update_service:
1029
1029
  return
1030
- min_date = df['日期'].min()
1031
- max_date = df['日期'].max()
1030
+ min_date = pd.to_datetime(df['日期'].min()).strftime('%Y-%m-%d')
1031
+ max_date = pd.to_datetime(df['日期'].max()).strftime('%Y-%m-%d')
1032
1032
  now = datetime.datetime.now().strftime("%Y-%m-%d %H:%M:%S")
1033
1033
  print(f'{now} 正在更新: mysql ({host}:{port}) {db_name}/{table_name} -> {min_date}~{max_date}')
1034
1034
  m_engine.df_to_mysql(
@@ -1975,6 +1975,58 @@ class MysqlDatasQuery:
1975
1975
  )
1976
1976
  return True
1977
1977
 
1978
+ def deeplink(self, db_name='聚合数据', table_name='达摩盘_deeplink人群洞察'):
1979
+ start_date, end_date = self.months_data(num=self.months)
1980
+ projection = {}
1981
+ df = self.download.data_to_df(
1982
+ db_name='达摩盘3',
1983
+ table_name='店铺deeplink人群洞察',
1984
+ start_date=start_date,
1985
+ end_date=end_date,
1986
+ projection=projection,
1987
+ )
1988
+ df.drop_duplicates(subset=['日期', '人群类型', '店铺名称', '人群规模', '广告投入金额'], keep='last', inplace=True, ignore_index=True)
1989
+ if not self.update_service:
1990
+ return
1991
+ set_typ = {
1992
+ '日期': 'date',
1993
+ '人群类型': 'varchar(100)',
1994
+ '店铺名称': 'varchar(100)',
1995
+ '人群规模': 'int',
1996
+ '人均成交价值': 'decimal(10, 4)',
1997
+ 'datatype': 'varchar(100)',
1998
+ '人群总计': 'int',
1999
+ '广告触达占比': 'decimal(12, 4)',
2000
+ '广告投入金额': 'decimal(12, 2)',
2001
+ 'touchcharge': 'decimal(12, 2)',
2002
+ '人群占比': 'decimal(12, 4)',
2003
+ '长周期roi': 'decimal(12, 4)',
2004
+ '支付买家数': 'int',
2005
+ '成交笔数': 'int',
2006
+ '成交金额': 'decimal(13, 2)',
2007
+ '触达人数': 'int',
2008
+ '长周期成交价值': 'decimal(13, 2)',
2009
+ '达摩盘id': 'int',
2010
+ }
2011
+ min_date = df['日期'].min()
2012
+ max_date = df['日期'].max()
2013
+ now = datetime.datetime.now().strftime("%Y-%m-%d %H:%M:%S")
2014
+ print(f'{now} 正在更新: mysql ({host}:{port}) {db_name}/{table_name} -> {min_date}~{max_date}')
2015
+ m_engine.df_to_mysql(
2016
+ df=df,
2017
+ db_name=db_name,
2018
+ table_name=table_name,
2019
+ icm_update=['日期', '人群类型', '店铺名称', '人群规模', '广告投入金额'], # 增量更新, 在聚合数据中使用,其他不要用
2020
+ move_insert=True, # 先删除,再插入
2021
+ df_sql=False, # 值为 True 时使用 df.to_sql 函数上传整个表, 不会排重
2022
+ drop_duplicates=False, # 值为 True 时检查重复数据再插入,反之直接上传,会比较慢
2023
+ count=None,
2024
+ filename=None, # 用来追踪处理进度
2025
+ reset_id=False, # 是否重置自增列
2026
+ set_typ=set_typ,
2027
+ )
2028
+ return True
2029
+
1978
2030
  @try_except
1979
2031
  def dmp_crowd(self, db_name='聚合数据', table_name='达摩盘_人群报表'):
1980
2032
  start_date, end_date = self.months_data(num=self.months)
@@ -2393,17 +2445,6 @@ class MysqlDatasQuery:
2393
2445
  pic = [item['数据主体'] for item in self.pf_datas if item['集合名称'] == '商品id图片对照表'][0]
2394
2446
  cost = [item['数据主体'] for item in self.pf_datas if item['集合名称'] == '商品成本'][0]
2395
2447
 
2396
- # pic['商品id'] = pic['商品id'].astype(str)
2397
- # # 1. id 编码表合并图片表
2398
- # df = pd.merge(idbm, pic, how='left', left_on='宝贝id', right_on='商品id')
2399
- # df = df[['宝贝id', '商家编码', '商品图片']]
2400
- # # 2. df 合并商品成本表
2401
- # df = pd.merge(df, cost, how='left', left_on='商家编码', right_on='款号')
2402
- # df = df[['宝贝id', '商家编码', '商品图片', '成本价']]
2403
- # # 3. 推广表合并 df
2404
- # df = pd.merge(tg, df, how='left', left_on='商品id', right_on='宝贝id')
2405
- # df.drop(labels='宝贝id', axis=1, inplace=True)
2406
-
2407
2448
  # 由于推广表之前根据场景、营销渠道等聚合的,这里不含这些字段所以要进一步聚合
2408
2449
  tg = tg.groupby(
2409
2450
  ['日期', '店铺名称', '商品id'],
@@ -2414,7 +2455,6 @@ class MysqlDatasQuery:
2414
2455
  '直接成交金额': ('直接成交金额', np.sum),
2415
2456
  }
2416
2457
  )
2417
- syj.to_csv('/Users/xigua/Downloads/ddd.csv', index=False, header=True, encoding='utf-8_sig')
2418
2458
  # 4. 生意经,推广表聚合
2419
2459
  if bb_tg is True:
2420
2460
  # 生意经合并推广表,完整的数据表,包含全店所有推广、销售数据
@@ -2463,6 +2503,7 @@ class MysqlDatasQuery:
2463
2503
  df['商品毛利'] = df.apply(lambda x: x['销售额'] - x['商品成本'], axis=1)
2464
2504
  df['毛利率'] = df.apply(lambda x: round((x['销售额'] - x['商品成本']) / x['销售额'], 4) if x['销售额'] > 0 else 0, axis=1)
2465
2505
  df['盈亏'] = df.apply(lambda x: x['商品毛利'] - x['花费'], axis=1)
2506
+ [df[col].apply(lambda x: '0' if str(x) == '' else x) for col in df.columns.tolist()]
2466
2507
  set_typ = {
2467
2508
  '日期': 'date',
2468
2509
  '店铺名称': 'varchar(100)',
@@ -2575,6 +2616,7 @@ class MysqlDatasQuery:
2575
2616
  '自然流量曝光量': int,
2576
2617
  }
2577
2618
  )
2619
+ [df[col].apply(lambda x: '0' if str(x) == '' else x) for col in df.columns.tolist()]
2578
2620
  set_typ = {
2579
2621
  '日期': 'date',
2580
2622
  '店铺名称': 'varchar(100)',
@@ -2648,7 +2690,7 @@ class MysqlDatasQuery:
2648
2690
  df['毛利率'] = df.apply(
2649
2691
  lambda x: round((x['成交金额'] - x['商品成本']) / x['成交金额'], 4) if x['成交金额'] > 0 else 0, axis=1)
2650
2692
  df['盈亏'] = df.apply(lambda x: x['商品毛利'] - x['花费'], axis=1)
2651
- # print(df.info())
2693
+ [df[col].apply(lambda x: '0' if str(x) == '' else x) for col in df.columns.tolist()]
2652
2694
  set_typ = {
2653
2695
  '日期': 'date',
2654
2696
  '跟单sku_id': 'bigint',
@@ -2717,6 +2759,17 @@ def date_table():
2717
2759
  host=host,
2718
2760
  port=port,
2719
2761
  )
2762
+ set_typ = {
2763
+ '日期': 'date',
2764
+ '年': 'varchar(50)',
2765
+ '月': 'varchar(50)',
2766
+ '日': 'int',
2767
+ '年月': 'varchar(50)',
2768
+ '月日': 'varchar(50)',
2769
+ '第n周': 'varchar(50)',
2770
+ '索引': 'int',
2771
+ '月索引': 'int',
2772
+ }
2720
2773
  m.df_to_mysql(
2721
2774
  df=df,
2722
2775
  db_name='聚合数据',
@@ -2726,7 +2779,7 @@ def date_table():
2726
2779
  drop_duplicates=False, # 值为 True 时检查重复数据再插入,反之直接上传,会比较慢
2727
2780
  count=None,
2728
2781
  filename=None, # 用来追踪处理进度
2729
- set_typ={},
2782
+ set_typ=set_typ,
2730
2783
  )
2731
2784
 
2732
2785
 
@@ -2750,7 +2803,7 @@ def main(days=100, months=3):
2750
2803
  )
2751
2804
 
2752
2805
  # 3. 数据聚合
2753
- query_(months=3)
2806
+ query_(months=months)
2754
2807
  time.sleep(60)
2755
2808
 
2756
2809
  # 4. 清理聚合数据
@@ -2790,6 +2843,7 @@ def query_(months=1, less_dict=[]):
2790
2843
  sdq.tg_by_day(db_name='聚合数据', table_name='多店推广场景_按日聚合')
2791
2844
  sdq.aikucun_bd_spu(db_name='聚合数据', table_name='爱库存_商品spu榜单')
2792
2845
  sdq.dmp_crowd(db_name='聚合数据', table_name='达摩盘_人群报表')
2846
+ sdq.deeplink(db_name='聚合数据', table_name='达摩盘_deeplink人群洞察')
2793
2847
  sdq.performance(bb_tg=True, db_name='聚合数据', table_name='_全店商品销售') # _全店商品销售
2794
2848
  sdq.performance(bb_tg=False, db_name='聚合数据', table_name='_推广商品销售') # _推广商品销售
2795
2849
  sdq.performance_jd(jd_tg=False, db_name='聚合数据', table_name='_京东_推广商品销售') # _推广商品销售
@@ -2798,5 +2852,12 @@ def query_(months=1, less_dict=[]):
2798
2852
 
2799
2853
  if __name__ == '__main__':
2800
2854
  main(days=100, months=3)
2801
-
2802
- # query_(months=1)
2855
+ # query_(months=13)
2856
+
2857
+ # # 4. 清理聚合数据
2858
+ # optimize_data.op_data(
2859
+ # db_name_lists=['聚合数据'],
2860
+ # days=40,
2861
+ # is_mongo=False,
2862
+ # is_mysql=True,
2863
+ # )
@@ -6,19 +6,13 @@ import re
6
6
  import time
7
7
  from functools import wraps
8
8
  import warnings
9
- from unittest.mock import inplace
10
-
11
9
  import pymysql
12
10
  import numpy as np
13
11
  import pandas as pd
14
- from markdown_it.rules_inline.backticks import regex
15
12
  from sqlalchemy import create_engine
16
13
  import os
17
14
  import calendar
18
15
  from mdbq.config import myconfig
19
- from mdbq.config import set_support
20
- from mdbq.dataframe import converter
21
- from mdbq.aggregation import mysql_types
22
16
 
23
17
  warnings.filterwarnings('ignore')
24
18
  """
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: mdbq
3
- Version: 2.9.9
3
+ Version: 3.0.1
4
4
  Home-page: https://pypi.org/project/mdbq
5
5
  Author: xigua,
6
6
  Author-email: 2587125111@qq.com
@@ -3,7 +3,7 @@
3
3
  from setuptools import setup, find_packages
4
4
 
5
5
  setup(name='mdbq',
6
- version='2.9.9',
6
+ version='3.0.1',
7
7
  author='xigua, ',
8
8
  author_email="2587125111@qq.com",
9
9
  url='https://pypi.org/project/mdbq',
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes