mdbq 2.9.9__py3-none-any.whl → 3.0.0__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.
@@ -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(
@@ -2393,17 +2393,6 @@ class MysqlDatasQuery:
2393
2393
  pic = [item['数据主体'] for item in self.pf_datas if item['集合名称'] == '商品id图片对照表'][0]
2394
2394
  cost = [item['数据主体'] for item in self.pf_datas if item['集合名称'] == '商品成本'][0]
2395
2395
 
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
2396
  # 由于推广表之前根据场景、营销渠道等聚合的,这里不含这些字段所以要进一步聚合
2408
2397
  tg = tg.groupby(
2409
2398
  ['日期', '店铺名称', '商品id'],
@@ -2414,7 +2403,6 @@ class MysqlDatasQuery:
2414
2403
  '直接成交金额': ('直接成交金额', np.sum),
2415
2404
  }
2416
2405
  )
2417
- syj.to_csv('/Users/xigua/Downloads/ddd.csv', index=False, header=True, encoding='utf-8_sig')
2418
2406
  # 4. 生意经,推广表聚合
2419
2407
  if bb_tg is True:
2420
2408
  # 生意经合并推广表,完整的数据表,包含全店所有推广、销售数据
@@ -2463,6 +2451,7 @@ class MysqlDatasQuery:
2463
2451
  df['商品毛利'] = df.apply(lambda x: x['销售额'] - x['商品成本'], axis=1)
2464
2452
  df['毛利率'] = df.apply(lambda x: round((x['销售额'] - x['商品成本']) / x['销售额'], 4) if x['销售额'] > 0 else 0, axis=1)
2465
2453
  df['盈亏'] = df.apply(lambda x: x['商品毛利'] - x['花费'], axis=1)
2454
+ [df[col].apply(lambda x: '0' if str(x) == '' else x) for col in df.columns.tolist()]
2466
2455
  set_typ = {
2467
2456
  '日期': 'date',
2468
2457
  '店铺名称': 'varchar(100)',
@@ -2575,6 +2564,7 @@ class MysqlDatasQuery:
2575
2564
  '自然流量曝光量': int,
2576
2565
  }
2577
2566
  )
2567
+ [df[col].apply(lambda x: '0' if str(x) == '' else x) for col in df.columns.tolist()]
2578
2568
  set_typ = {
2579
2569
  '日期': 'date',
2580
2570
  '店铺名称': 'varchar(100)',
@@ -2648,7 +2638,7 @@ class MysqlDatasQuery:
2648
2638
  df['毛利率'] = df.apply(
2649
2639
  lambda x: round((x['成交金额'] - x['商品成本']) / x['成交金额'], 4) if x['成交金额'] > 0 else 0, axis=1)
2650
2640
  df['盈亏'] = df.apply(lambda x: x['商品毛利'] - x['花费'], axis=1)
2651
- # print(df.info())
2641
+ [df[col].apply(lambda x: '0' if str(x) == '' else x) for col in df.columns.tolist()]
2652
2642
  set_typ = {
2653
2643
  '日期': 'date',
2654
2644
  '跟单sku_id': 'bigint',
@@ -2717,6 +2707,17 @@ def date_table():
2717
2707
  host=host,
2718
2708
  port=port,
2719
2709
  )
2710
+ set_typ = {
2711
+ '日期': 'date',
2712
+ '年': 'varchar(50)',
2713
+ '月': 'varchar(50)',
2714
+ '日': 'int',
2715
+ '年月': 'varchar(50)',
2716
+ '月日': 'varchar(50)',
2717
+ '第n周': 'varchar(50)',
2718
+ '索引': 'int',
2719
+ '月索引': 'int',
2720
+ }
2720
2721
  m.df_to_mysql(
2721
2722
  df=df,
2722
2723
  db_name='聚合数据',
@@ -2726,7 +2727,7 @@ def date_table():
2726
2727
  drop_duplicates=False, # 值为 True 时检查重复数据再插入,反之直接上传,会比较慢
2727
2728
  count=None,
2728
2729
  filename=None, # 用来追踪处理进度
2729
- set_typ={},
2730
+ set_typ=set_typ,
2730
2731
  )
2731
2732
 
2732
2733
 
@@ -2750,7 +2751,7 @@ def main(days=100, months=3):
2750
2751
  )
2751
2752
 
2752
2753
  # 3. 数据聚合
2753
- query_(months=3)
2754
+ query_(months=months)
2754
2755
  time.sleep(60)
2755
2756
 
2756
2757
  # 4. 清理聚合数据
@@ -2797,6 +2798,5 @@ def query_(months=1, less_dict=[]):
2797
2798
 
2798
2799
 
2799
2800
  if __name__ == '__main__':
2800
- main(days=100, months=3)
2801
-
2802
- # query_(months=1)
2801
+ # main(days=100, months=3)
2802
+ query_(months=1)
mdbq/mysql/mysql.py CHANGED
@@ -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.0
4
4
  Home-page: https://pypi.org/project/mdbq
5
5
  Author: xigua,
6
6
  Author-email: 2587125111@qq.com
@@ -5,7 +5,7 @@ mdbq/aggregation/aggregation.py,sha256=2KCVXZygQt4xVxGbFcDMBpL3PukY4yQF_uI-qLSTW
5
5
  mdbq/aggregation/df_types.py,sha256=U9i3q2eRPTDY8qAPTw7irzu-Tlg4CIySW9uYro81wdk,8125
6
6
  mdbq/aggregation/mysql_types.py,sha256=YTGyrF9vcRgfkQbpT-e-JdJ7c7VF1dDHgyx9YZRES8w,10934
7
7
  mdbq/aggregation/optimize_data.py,sha256=79uwiM2WqNNFxGpE2wKz742PRq-ZGgFjdOV0vgptHdY,3513
8
- mdbq/aggregation/query_data.py,sha256=iuRaJkqXEiiT_MzoQixGcAzkUwuFxhSGh0qxPjDSlEU,124313
8
+ mdbq/aggregation/query_data.py,sha256=ekMNXE_3tMNUzm4DzkLustCOu62XIEVP-VPHns5nEqY,124191
9
9
  mdbq/aggregation/query_data_bak.py,sha256=r1FU0C4zjXln7oVSrRkElh4Ehl-9mYhGcq57jLbViUA,104071
10
10
  mdbq/bdup/__init__.py,sha256=AkhsGk81SkG1c8FqDH5tRq-8MZmFobVbN60DTyukYTY,28
11
11
  mdbq/bdup/bdup.py,sha256=LAV0TgnQpc-LB-YuJthxb0U42_VkPidzQzAagan46lU,4234
@@ -27,7 +27,7 @@ mdbq/log/mylogger.py,sha256=oaT7Bp-Hb9jZt52seP3ISUuxVcI19s4UiqTeouScBO0,3258
27
27
  mdbq/mongo/__init__.py,sha256=SILt7xMtQIQl_m-ik9WLtJSXIVf424iYgCfE_tnQFbw,13
28
28
  mdbq/mongo/mongo.py,sha256=v9qvrp6p1ZRWuPpbSilqveiE0FEcZF7U5xUPI0RN4xs,31880
29
29
  mdbq/mysql/__init__.py,sha256=A_DPJyAoEvTSFojiI2e94zP0FKtCkkwKP1kYUCSyQzo,11
30
- mdbq/mysql/mysql.py,sha256=_geeu7LP-Ur76kr1ka7_jdifnwrnJJjWnUBzlPXOQOQ,60119
30
+ mdbq/mysql/mysql.py,sha256=KGfByf3KJF0xG-DeDANbJVmS96jwqbhapXPwlygC8-s,59917
31
31
  mdbq/mysql/recheck_mysql.py,sha256=rgTpvDMWYTyEn7UQdlig-pdXDluTgiU8JG6lkMh8DV0,8665
32
32
  mdbq/mysql/s_query.py,sha256=fnXncwSmA7CB0ELn1a-YxYZDrYkC2Bcgnj2J4dcQ8X8,8481
33
33
  mdbq/mysql/year_month_day.py,sha256=VgewoE2pJxK7ErjfviL_SMTN77ki8GVbTUcao3vFUCE,1523
@@ -44,7 +44,7 @@ mdbq/req_post/__init__.py,sha256=jso1oHcy6cJEfa7udS_9uO5X6kZLoPBF8l3wCYmr5dM,18
44
44
  mdbq/req_post/req_tb.py,sha256=qg7pet73IgKGmCwxaeUyImJIoeK_pBQT9BBKD7fkBNg,36160
45
45
  mdbq/spider/__init__.py,sha256=RBMFXGy_jd1HXZhngB2T2XTvJqki8P_Fr-pBcwijnew,18
46
46
  mdbq/spider/aikucun.py,sha256=01qJo_Di5Kmi2lG5_HKb0OI283b1-Pgqh-nnA0pX4TY,19038
47
- mdbq-2.9.9.dist-info/METADATA,sha256=GlOK8ubNuk_jdrf3mZccTt48sZye7H5MSPllrC1OSN8,243
48
- mdbq-2.9.9.dist-info/WHEEL,sha256=eOLhNAGa2EW3wWl_TU484h7q1UNgy0JXjjoqKoxAAQc,92
49
- mdbq-2.9.9.dist-info/top_level.txt,sha256=2FQ-uLnCSB-OwFiWntzmwosW3X2Xqsg0ewh1axsaylA,5
50
- mdbq-2.9.9.dist-info/RECORD,,
47
+ mdbq-3.0.0.dist-info/METADATA,sha256=a3HMAijPDSCqXF_6kAcl83eqlMbaiJP9d2_VnUDDUck,243
48
+ mdbq-3.0.0.dist-info/WHEEL,sha256=eOLhNAGa2EW3wWl_TU484h7q1UNgy0JXjjoqKoxAAQc,92
49
+ mdbq-3.0.0.dist-info/top_level.txt,sha256=2FQ-uLnCSB-OwFiWntzmwosW3X2Xqsg0ewh1axsaylA,5
50
+ mdbq-3.0.0.dist-info/RECORD,,
File without changes