mdbq 3.7.23__py3-none-any.whl → 3.7.25__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.
@@ -27,6 +27,8 @@ username, password, host, port = content['username'], content['password'], conte
27
27
  m_engine = mysql.MysqlUpload(username=username, password=password, host=host, port=port, charset='utf8mb4')
28
28
 
29
29
  logger = logging.getLogger(__name__)
30
+ # from mdbq.log import spider_logging
31
+ # logger = spider_logging.setup_logging()
30
32
 
31
33
 
32
34
  class MysqlDatasQuery:
@@ -1011,19 +1013,20 @@ class MysqlDatasQuery:
1011
1013
  )
1012
1014
  return True
1013
1015
 
1014
- def tg_cjzb_qzt(self, is_maximize=True):
1016
+ def tg_cjzb_qzt(self, projection=None, is_maximize=True):
1015
1017
  start_date, end_date = self.months_data(num=self.months)
1016
- projection = {
1017
- '日期': 1,
1018
- '场景名字': 1,
1019
- '计划id': 1,
1020
- '全站花费': 1,
1021
- '全站观看次数': 1,
1022
- '全站宝贝点击量': 1,
1023
- '全站成交金额': 1,
1024
- '全站成交笔数': 1,
1025
- '店铺名称': 1,
1026
- }
1018
+ if not projection:
1019
+ projection = {
1020
+ '日期': 1,
1021
+ '场景名字': 1,
1022
+ '计划id': 1,
1023
+ '全站花费': 1,
1024
+ '全站观看次数': 1,
1025
+ '全站宝贝点击量': 1,
1026
+ '全站成交金额': 1,
1027
+ '全站成交笔数': 1,
1028
+ '店铺名称': 1,
1029
+ }
1027
1030
  __res = []
1028
1031
  for year in range(2025, datetime.datetime.today().year + 1):
1029
1032
  df = self.download.data_to_df(
@@ -1037,14 +1040,6 @@ class MysqlDatasQuery:
1037
1040
  df = pd.concat(__res, ignore_index=True)
1038
1041
  if len(df) == 0:
1039
1042
  return pd.DataFrame()
1040
- # 这里的重命名要注意,因为 tg_cjzb 函数还要重命名一次,注意改为 tg_cjzb 命名前的列名
1041
- df.rename(columns={
1042
- '全站花费': '花费',
1043
- '全站观看次数': '观看次数',
1044
- '全站宝贝点击量': '点击量',
1045
- '全站成交金额': '总成交金额',
1046
- '全站成交笔数': '总成交笔数'
1047
- }, inplace=True)
1048
1043
  return df
1049
1044
 
1050
1045
 
@@ -1079,8 +1074,17 @@ class MysqlDatasQuery:
1079
1074
  )
1080
1075
  __res.append(df)
1081
1076
  df = pd.concat(__res, ignore_index=True)
1077
+ # 直播全站推广不包含的超级直播报表,所以单独添加 2025-03-07
1082
1078
  cjzb_qzt = self.tg_cjzb_qzt(is_maximize=True)
1083
1079
  if len(cjzb_qzt) > 0:
1080
+ # 这里的重命名要注意,因为 tg_cjzb 函数还要重命名一次,注意改为 tg_cjzb 命名前的列名
1081
+ cjzb_qzt.rename(columns={
1082
+ '全站花费': '花费',
1083
+ '全站观看次数': '观看次数',
1084
+ '全站宝贝点击量': '点击量',
1085
+ '全站成交金额': '总成交金额',
1086
+ '全站成交笔数': '总成交笔数'
1087
+ }, inplace=True)
1084
1088
  for col in df.columns.tolist():
1085
1089
  if col not in cjzb_qzt.columns.tolist():
1086
1090
  cjzb_qzt[col] = 0
@@ -2781,6 +2785,43 @@ class MysqlDatasQuery:
2781
2785
 
2782
2786
  _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
2783
2787
  df = pd.concat(_datas, axis=0, ignore_index=True)
2788
+ # 超级直播全站推广不包含在营销场景报表中,所以单独添加 2025-03-05
2789
+ projection = {
2790
+ '日期': 1,
2791
+ '店铺名称': 1,
2792
+ '场景id': 1,
2793
+ '场景名字': 1,
2794
+ '全站花费': 1,
2795
+ '全站观看次数': 1,
2796
+ '全站宝贝点击量': 1,
2797
+ '全站成交笔数': 1,
2798
+ '全站成交金额': 1,
2799
+ }
2800
+ cjzb_qzt = self.tg_cjzb_qzt(projection=projection, is_maximize=True)
2801
+ if len(cjzb_qzt) > 0:
2802
+ cjzb_qzt.rename(columns={
2803
+ '场景名字': '营销场景',
2804
+ '全站花费': '花费',
2805
+ '全站观看次数': '展现量',
2806
+ '全站宝贝点击量': '点击量',
2807
+ '全站成交笔数': '成交笔数',
2808
+ '全站成交金额': '成交金额',
2809
+ }, inplace=True)
2810
+ cjzb_qzt = cjzb_qzt.groupby(
2811
+ ['日期', '店铺名称', '场景id', '营销场景'],
2812
+ as_index=False).agg(
2813
+ **{
2814
+ '花费': ('花费', np.max),
2815
+ '展现量': ('展现量', np.max),
2816
+ '点击量': ('点击量', np.max),
2817
+ '成交笔数': ('成交笔数', np.max),
2818
+ '成交金额': ('成交金额', np.max)
2819
+ }
2820
+ )
2821
+ for col in df.columns.tolist():
2822
+ if col not in cjzb_qzt.columns.tolist():
2823
+ cjzb_qzt[col] = 0
2824
+ df = pd.concat([df, cjzb_qzt], ignore_index=True)
2784
2825
  df['日期'] = pd.to_datetime(df['日期'], format='%Y-%m-%d', errors='ignore') # 转换日期列
2785
2826
  df = df.groupby(
2786
2827
  ['日期', '店铺名称', '营销场景'],
@@ -3549,6 +3590,7 @@ class MysqlDatasQuery:
3549
3590
  # '直接成交金额': ('直接成交金额', np.max)
3550
3591
  # }
3551
3592
  # )
3593
+
3552
3594
  df = pd.concat([tg, zb, pxb], axis=0, ignore_index=True)
3553
3595
  df.fillna(0, inplace=True) # concat 之后要填充空值
3554
3596
  df = df.astype(
@@ -3576,6 +3618,7 @@ class MysqlDatasQuery:
3576
3618
  }
3577
3619
  if not self.update_service:
3578
3620
  return
3621
+ df['日期'] = pd.to_datetime(df['日期'], format='%Y-%m-%d', errors='ignore')
3579
3622
  min_date = df['日期'].min()
3580
3623
  max_date = df['日期'].max()
3581
3624
  now = datetime.datetime.now().strftime("%Y-%m-%d %H:%M:%S")
@@ -3904,15 +3947,9 @@ def test():
3904
3947
  sdq.update_service = True # 调试时加,true: 将数据写入 mysql 服务器
3905
3948
  sdq.spph(db_name='聚合数据', table_name='天猫_商品排行')
3906
3949
 
3907
- if __name__ == '__main__':
3908
- # main(
3909
- # days=150, # 清理聚合数据的日期长度
3910
- # months=3 # 生成聚合数据的长度
3911
- # )
3912
-
3913
- sdq = MysqlDatasQuery() # 实例化数据处理类
3914
- sdq.months = 2
3915
- sdq.tg_cjzb(db_name='聚合数据', table_name='天猫_超级直播')
3916
-
3917
-
3918
3950
 
3951
+ if __name__ == '__main__':
3952
+ main(
3953
+ days=150, # 清理聚合数据的日期长度
3954
+ months=3 # 生成聚合数据的长度
3955
+ )
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.2
2
2
  Name: mdbq
3
- Version: 3.7.23
3
+ Version: 3.7.25
4
4
  Home-page: https://pypi.org/project/mdbq
5
5
  Author: xigua,
6
6
  Author-email: 2587125111@qq.com
@@ -2,7 +2,7 @@ mdbq/__init__.py,sha256=Il5Q9ATdX8yXqVxtP_nYqUhExzxPC_qk_WXQ_4h0exg,16
2
2
  mdbq/__version__.py,sha256=y9Mp_8x0BCZSHsdLT_q5tX9wZwd5QgqrSIENLrb6vXA,62
3
3
  mdbq/aggregation/__init__.py,sha256=EeDqX2Aml6SPx8363J-v1lz0EcZtgwIBYyCJV6CcEDU,40
4
4
  mdbq/aggregation/optimize_data_bak.py,sha256=wB7prQdZAHyjzXH9V8g8X_JBMdvCCUITN1hVwK72Tdg,952
5
- mdbq/aggregation/query_data.py,sha256=wOngHgsU7nFiz6PkrXz0eb5g4m4nc5m4_yJslR5XOWk,176294
5
+ mdbq/aggregation/query_data.py,sha256=R8KL_tX6kU3Na2Gy-FGzNaGRZEzCl8bptYgOTSXYDpw,178194
6
6
  mdbq/bdup/__init__.py,sha256=AkhsGk81SkG1c8FqDH5tRq-8MZmFobVbN60DTyukYTY,28
7
7
  mdbq/bdup/bdup.py,sha256=hJs815hGFwm_X5bP2i9XugG2w2ZY_F0n3-Q0hVpIPPw,4892
8
8
  mdbq/config/__init__.py,sha256=jso1oHcy6cJEfa7udS_9uO5X6kZLoPBF8l3wCYmr5dM,18
@@ -31,7 +31,7 @@ mdbq/redis/__init__.py,sha256=YtgBlVSMDphtpwYX248wGge1x-Ex_mMufz4-8W0XRmA,12
31
31
  mdbq/redis/getredis.py,sha256=1pTga2iINx0NV2ffl0D-aspZhrZMDQR8SpohAv1acoo,24076
32
32
  mdbq/spider/__init__.py,sha256=RBMFXGy_jd1HXZhngB2T2XTvJqki8P_Fr-pBcwijnew,18
33
33
  mdbq/spider/aikucun.py,sha256=o_QwFWbD6O2F56k6bwnpVV55EcdFCyes05ON7iu9TrA,21882
34
- mdbq-3.7.23.dist-info/METADATA,sha256=fdkmDNycOfqYZ-1Yex9emViiRWSFz_fxEg4EF8aLS_I,364
35
- mdbq-3.7.23.dist-info/WHEEL,sha256=jB7zZ3N9hIM9adW7qlTAyycLYW9npaWKLRzaoVcLKcM,91
36
- mdbq-3.7.23.dist-info/top_level.txt,sha256=2FQ-uLnCSB-OwFiWntzmwosW3X2Xqsg0ewh1axsaylA,5
37
- mdbq-3.7.23.dist-info/RECORD,,
34
+ mdbq-3.7.25.dist-info/METADATA,sha256=iYpEjhz-9ZbdywrhWjoYuW_-FUZHtJ0U0l9SReSVFpk,364
35
+ mdbq-3.7.25.dist-info/WHEEL,sha256=jB7zZ3N9hIM9adW7qlTAyycLYW9npaWKLRzaoVcLKcM,91
36
+ mdbq-3.7.25.dist-info/top_level.txt,sha256=2FQ-uLnCSB-OwFiWntzmwosW3X2Xqsg0ewh1axsaylA,5
37
+ mdbq-3.7.25.dist-info/RECORD,,
File without changes