mdbq 1.7.3__tar.gz → 1.7.5__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 (45) hide show
  1. {mdbq-1.7.3 → mdbq-1.7.5}/PKG-INFO +1 -1
  2. {mdbq-1.7.3 → mdbq-1.7.5}/mdbq/aggregation/aggregation.py +3 -3
  3. {mdbq-1.7.3 → mdbq-1.7.5}/mdbq/aggregation/query_data.py +110 -10
  4. {mdbq-1.7.3 → mdbq-1.7.5}/mdbq/mysql/mysql.py +1 -1
  5. {mdbq-1.7.3 → mdbq-1.7.5}/mdbq.egg-info/PKG-INFO +1 -1
  6. {mdbq-1.7.3 → mdbq-1.7.5}/setup.py +1 -1
  7. {mdbq-1.7.3 → mdbq-1.7.5}/README.txt +0 -0
  8. {mdbq-1.7.3 → mdbq-1.7.5}/mdbq/__init__.py +0 -0
  9. {mdbq-1.7.3 → mdbq-1.7.5}/mdbq/__version__.py +0 -0
  10. {mdbq-1.7.3 → mdbq-1.7.5}/mdbq/aggregation/__init__.py +0 -0
  11. {mdbq-1.7.3 → mdbq-1.7.5}/mdbq/aggregation/df_types.py +0 -0
  12. {mdbq-1.7.3 → mdbq-1.7.5}/mdbq/aggregation/mysql_types.py +0 -0
  13. {mdbq-1.7.3 → mdbq-1.7.5}/mdbq/aggregation/optimize_data.py +0 -0
  14. {mdbq-1.7.3 → mdbq-1.7.5}/mdbq/bdup/__init__.py +0 -0
  15. {mdbq-1.7.3 → mdbq-1.7.5}/mdbq/bdup/bdup.py +0 -0
  16. {mdbq-1.7.3 → mdbq-1.7.5}/mdbq/clean/__init__.py +0 -0
  17. {mdbq-1.7.3 → mdbq-1.7.5}/mdbq/clean/data_clean.py +0 -0
  18. {mdbq-1.7.3 → mdbq-1.7.5}/mdbq/company/__init__.py +0 -0
  19. {mdbq-1.7.3 → mdbq-1.7.5}/mdbq/company/copysh.py +0 -0
  20. {mdbq-1.7.3 → mdbq-1.7.5}/mdbq/config/__init__.py +0 -0
  21. {mdbq-1.7.3 → mdbq-1.7.5}/mdbq/config/get_myconf.py +0 -0
  22. {mdbq-1.7.3 → mdbq-1.7.5}/mdbq/config/products.py +0 -0
  23. {mdbq-1.7.3 → mdbq-1.7.5}/mdbq/config/set_support.py +0 -0
  24. {mdbq-1.7.3 → mdbq-1.7.5}/mdbq/config/update_conf.py +0 -0
  25. {mdbq-1.7.3 → mdbq-1.7.5}/mdbq/dataframe/__init__.py +0 -0
  26. {mdbq-1.7.3 → mdbq-1.7.5}/mdbq/dataframe/converter.py +0 -0
  27. {mdbq-1.7.3 → mdbq-1.7.5}/mdbq/log/__init__.py +0 -0
  28. {mdbq-1.7.3 → mdbq-1.7.5}/mdbq/log/mylogger.py +0 -0
  29. {mdbq-1.7.3 → mdbq-1.7.5}/mdbq/mongo/__init__.py +0 -0
  30. {mdbq-1.7.3 → mdbq-1.7.5}/mdbq/mongo/mongo.py +0 -0
  31. {mdbq-1.7.3 → mdbq-1.7.5}/mdbq/mysql/__init__.py +0 -0
  32. {mdbq-1.7.3 → mdbq-1.7.5}/mdbq/mysql/s_query.py +0 -0
  33. {mdbq-1.7.3 → mdbq-1.7.5}/mdbq/mysql/year_month_day.py +0 -0
  34. {mdbq-1.7.3 → mdbq-1.7.5}/mdbq/other/__init__.py +0 -0
  35. {mdbq-1.7.3 → mdbq-1.7.5}/mdbq/other/porxy.py +0 -0
  36. {mdbq-1.7.3 → mdbq-1.7.5}/mdbq/other/pov_city.py +0 -0
  37. {mdbq-1.7.3 → mdbq-1.7.5}/mdbq/other/ua_sj.py +0 -0
  38. {mdbq-1.7.3 → mdbq-1.7.5}/mdbq/pbix/__init__.py +0 -0
  39. {mdbq-1.7.3 → mdbq-1.7.5}/mdbq/pbix/pbix_refresh.py +0 -0
  40. {mdbq-1.7.3 → mdbq-1.7.5}/mdbq/pbix/refresh_all.py +0 -0
  41. {mdbq-1.7.3 → mdbq-1.7.5}/mdbq/spider/__init__.py +0 -0
  42. {mdbq-1.7.3 → mdbq-1.7.5}/mdbq.egg-info/SOURCES.txt +0 -0
  43. {mdbq-1.7.3 → mdbq-1.7.5}/mdbq.egg-info/dependency_links.txt +0 -0
  44. {mdbq-1.7.3 → mdbq-1.7.5}/mdbq.egg-info/top_level.txt +0 -0
  45. {mdbq-1.7.3 → mdbq-1.7.5}/setup.cfg +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: mdbq
3
- Version: 1.7.3
3
+ Version: 1.7.5
4
4
  Home-page: https://pypi.org/project/mdbsql
5
5
  Author: xigua,
6
6
  Author-email: 2587125111@qq.com
@@ -1082,10 +1082,10 @@ if __name__ == '__main__':
1082
1082
  # database='mysql'
1083
1083
  # )
1084
1084
 
1085
- db_name = '京东数据2'
1086
- table_name = '推广数据_关键词报表'
1085
+ db_name = '推广数据2'
1086
+ table_name = '超级直播'
1087
1087
  upload_dir(
1088
- path='/Users/xigua/数据中心/原始文件2/京东报表/JD推广_关键词报表/2024-09',
1088
+ path='/Users/xigua/数据中心/原始文件2/推广报表/超级直播',
1089
1089
  db_name=db_name,
1090
1090
  collection_name=table_name,
1091
1091
  dbs={'mysql': True, 'mongodb': False},
@@ -219,6 +219,31 @@ class MysqlDatasQuery:
219
219
  )
220
220
  return df
221
221
 
222
+ def pxb_zh(self):
223
+ start_date, end_date = self.months_data(num=self.months)
224
+ projection = {
225
+ '日期': 1,
226
+ '报表类型': 1,
227
+ '搜索量': 1,
228
+ '搜索访客数': 1,
229
+ '展现量': 1,
230
+ # '自然流量增量曝光': 1,
231
+ '消耗': 1,
232
+ '点击量': 1,
233
+ '宝贝加购数': 1,
234
+ '成交笔数': 1,
235
+ '成交金额': 1,
236
+ # '成交访客数': 1
237
+ }
238
+ df = self.download.data_to_df(
239
+ db_name='推广数据2',
240
+ table_name='品销宝',
241
+ start_date=start_date,
242
+ end_date=end_date,
243
+ projection=projection,
244
+ )
245
+ return df
246
+
222
247
  def idbm(self):
223
248
  """ 用生意经日数据制作商品 id 和编码对照表 """
224
249
  data_values = self.download.columns_to_list(
@@ -442,7 +467,12 @@ class GroupBy:
442
467
  """
443
468
  if isinstance(df, pd.DataFrame):
444
469
  if len(df) == 0:
445
- print(f' query_data.groupby函数中 {table_name} 传入的 df 数据长度为0')
470
+ print(f' query_data.groupby 函数中 {table_name} 传入的 df 数据长度为0')
471
+ self.data_tgyj.update(
472
+ {
473
+ table_name: pd.DataFrame(),
474
+ }
475
+ )
446
476
  return pd.DataFrame()
447
477
  else:
448
478
  print(f'query_data.groupby函数中 {table_name} 传入的 df 不是 dataframe 结构')
@@ -625,6 +655,7 @@ class GroupBy:
625
655
  '总成交金额': '成交金额',
626
656
  '场景名字': '营销场景',
627
657
  }, inplace=True)
658
+ df['营销场景'] = '超级直播'
628
659
  df.fillna(0, inplace=True)
629
660
  df = df.astype({
630
661
  '花费': float,
@@ -683,6 +714,63 @@ class GroupBy:
683
714
  }
684
715
  )
685
716
  return df
717
+ elif '天猫_品销宝账户报表' in table_name:
718
+ df = df[df['报表类型'] == '账户']
719
+ df.fillna(value=0, inplace=True)
720
+ df.rename(columns={
721
+ '消耗': '花费',
722
+ '宝贝加购数': '加购量',
723
+ '搜索量': '品牌搜索量',
724
+ '搜索访客数': '品牌搜索人数'
725
+ }, inplace=True)
726
+ df = df.astype({
727
+ '花费': float,
728
+ '展现量': int,
729
+ '点击量': int,
730
+ '加购量': int,
731
+ '成交笔数': int,
732
+ '成交金额': float,
733
+ '品牌搜索量': int,
734
+ '品牌搜索人数': int,
735
+ }, errors='raise')
736
+ if is_maximize:
737
+ df = df.groupby(['日期', '报表类型', '花费', '展现量', '点击量'], as_index=False).agg(
738
+ **{
739
+ '加购量': ('加购量', np.max),
740
+ '成交笔数': ('成交笔数', np.max),
741
+ '成交金额': ('成交金额', np.max),
742
+ '品牌搜索量': ('品牌搜索量', np.max),
743
+ '品牌搜索人数': ('品牌搜索人数', np.max),
744
+ }
745
+ )
746
+ else:
747
+ df = df.groupby(['日期', '报表类型', '花费', '展现量', '点击量'], as_index=False).agg(
748
+ **{
749
+ '加购量': ('加购量', np.min),
750
+ '成交笔数': ('成交笔数', np.min),
751
+ '成交金额': ('成交金额', np.min),
752
+ '品牌搜索量': ('品牌搜索量', np.min),
753
+ '品牌搜索人数': ('品牌搜索人数', np.min),
754
+ }
755
+ )
756
+ df.insert(loc=1, column='推广渠道', value='品销宝') # df中插入新列
757
+ df.insert(loc=2, column='营销场景', value='品销宝') # df中插入新列
758
+ df_new = df.groupby(['日期', '推广渠道', '营销场景'], as_index=False).agg(
759
+ **{
760
+ '花费': ('花费', np.sum),
761
+ '展现量': ('展现量', np.sum),
762
+ '点击量': ('点击量', np.sum),
763
+ '加购量': ('加购量', np.sum),
764
+ '成交笔数': ('成交笔数', np.sum),
765
+ '成交金额': ('成交金额', np.sum)
766
+ }
767
+ )
768
+ self.data_tgyj.update(
769
+ {
770
+ table_name: df_new,
771
+ }
772
+ )
773
+ return df
686
774
  elif '宝贝指标' in table_name:
687
775
  """ 聚合时不可以加商家编码,编码有些是空白,有些是 0 """
688
776
  df['宝贝id'] = df['宝贝id'].astype(str)
@@ -932,7 +1020,7 @@ class GroupBy:
932
1020
  return df
933
1021
 
934
1022
  def performance_concat(self, bb_tg=True):
935
- tg, zb = self.data_tgyj['天猫汇总表调用'], self.data_tgyj['天猫_超级直播']
1023
+ tg, zb, pxb = self.data_tgyj['天猫汇总表调用'], self.data_tgyj['天猫_超级直播'], self.data_tgyj['天猫_品销宝账户报表']
936
1024
  zb.rename(columns={
937
1025
  '观看次数': '点击量',
938
1026
  }, inplace=True)
@@ -960,7 +1048,7 @@ class GroupBy:
960
1048
  '直接成交金额': float,
961
1049
  '自然流量曝光量': int,
962
1050
  }, errors='raise')
963
- df = pd.concat([tg, zb], axis=0, ignore_index=True)
1051
+ df = pd.concat([tg, zb, pxb], axis=0, ignore_index=True)
964
1052
  df.fillna(0, inplace=True) # concat 之后要填充空值
965
1053
  df = df.astype(
966
1054
  {
@@ -1109,9 +1197,9 @@ def data_aggregation_one(service_databases=[{}], months=1):
1109
1197
  ######################################################
1110
1198
  data_dict = [
1111
1199
  {
1112
- '数据库名': '聚合数据',
1113
- '集合名': '京东_关键词报表',
1114
- '唯一主键': ['日期', '产品线', '搜索词', '关键词', '展现数', '花费'],
1200
+ '数据库名': '聚合数据', # 清洗完回传的目的地数据库
1201
+ '集合名': '天猫_推广汇总', # 清洗完回传的数据表名
1202
+ '唯一主键': ['日期', '商品id'],
1115
1203
  '数据主体': sdq.jd_gjc(),
1116
1204
  },
1117
1205
  ]
@@ -1153,8 +1241,8 @@ def data_aggregation(service_databases=[{}], months=1):
1153
1241
  # 从数据库中获取数据, 返回包含 df 数据的字典
1154
1242
  data_dict = [
1155
1243
  {
1156
- '数据库名': '聚合数据',
1157
- '集合名': '天猫_主体报表',
1244
+ '数据库名': '聚合数据', # 清洗完回传的目的地数据库
1245
+ '集合名': '天猫_主体报表', # 清洗完回传的数据表名
1158
1246
  '唯一主键': ['日期', '推广渠道', '营销场景', '商品id', '花费'],
1159
1247
  '数据主体': sdq.tg_wxt(),
1160
1248
  },
@@ -1236,6 +1324,12 @@ def data_aggregation(service_databases=[{}], months=1):
1236
1324
  '唯一主键': ['日期', '产品线', '搜索词', '关键词', '展现数', '花费'],
1237
1325
  '数据主体': sdq.jd_gjc(),
1238
1326
  },
1327
+ {
1328
+ '数据库名': '聚合数据',
1329
+ '集合名': '天猫_品销宝账户报表',
1330
+ '唯一主键': ['日期', '报表类型'],
1331
+ '数据主体': sdq.pxb_zh(),
1332
+ },
1239
1333
  ]
1240
1334
  for items in data_dict: # 遍历返回结果
1241
1335
  db_name, table_name, unique_key_list, df = items['数据库名'], items['集合名'], items['唯一主键'], items['数据主体']
@@ -1246,6 +1340,7 @@ def data_aggregation(service_databases=[{}], months=1):
1246
1340
  df=g.sp_index_datas,
1247
1341
  db_name='属性设置2',
1248
1342
  table_name='商品索引表',
1343
+ # df_sql=True,
1249
1344
  drop_duplicates=False,
1250
1345
  icm_update=['商品id'],
1251
1346
  service_database=service_database,
@@ -1256,6 +1351,7 @@ def data_aggregation(service_databases=[{}], months=1):
1256
1351
  df=df,
1257
1352
  db_name=db_name,
1258
1353
  table_name=table_name,
1354
+ # df_sql=True,
1259
1355
  drop_duplicates=False,
1260
1356
  icm_update=unique_key_list,
1261
1357
  service_database=service_database,
@@ -1265,6 +1361,7 @@ def data_aggregation(service_databases=[{}], months=1):
1265
1361
  df=res,
1266
1362
  db_name='聚合数据',
1267
1363
  table_name='_全店商品销售',
1364
+ # df_sql=True,
1268
1365
  drop_duplicates=False,
1269
1366
  icm_update=['日期', '商品id'], # 设置唯一主键
1270
1367
  service_database=service_database,
@@ -1274,6 +1371,7 @@ def data_aggregation(service_databases=[{}], months=1):
1274
1371
  df=res,
1275
1372
  db_name='聚合数据',
1276
1373
  table_name='_推广商品销售',
1374
+ # df_sql=True,
1277
1375
  drop_duplicates=False,
1278
1376
  icm_update=['日期', '商品id'], # 设置唯一主键
1279
1377
  service_database=service_database,
@@ -1284,6 +1382,7 @@ def data_aggregation(service_databases=[{}], months=1):
1284
1382
  df=res,
1285
1383
  db_name='聚合数据',
1286
1384
  table_name='天猫_推广汇总',
1385
+ # df_sql=True,
1287
1386
  drop_duplicates=False,
1288
1387
  icm_update=['日期', '商品id'], # 设置唯一主键
1289
1388
  service_database=service_database,
@@ -1295,6 +1394,7 @@ def data_aggregation(service_databases=[{}], months=1):
1295
1394
  df=res,
1296
1395
  db_name='聚合数据',
1297
1396
  table_name='_京东_推广商品销售',
1397
+ # df_sql=True,
1298
1398
  drop_duplicates=False,
1299
1399
  icm_update=['日期', '跟单sku id', '货号', '花费'], # 设置唯一主键
1300
1400
  service_database=service_database,
@@ -1310,7 +1410,7 @@ def main():
1310
1410
 
1311
1411
 
1312
1412
  if __name__ == '__main__':
1313
- # data_aggregation(service_databases=[{'company': 'mysql'}], months=0) # 正常的聚合所有数据
1314
- data_aggregation_one(service_databases=[{'company': 'mysql'}], months=1) # 单独聚合某一个数据库,具体库进函数编辑
1413
+ data_aggregation(service_databases=[{'home_lx': 'mysql'}], months=1) # 正常的聚合所有数据
1414
+ # data_aggregation_one(service_databases=[{'company': 'mysql'}], months=1) # 单独聚合某一个数据库,具体库进函数编辑
1315
1415
  # optimize_data.op_data(service_databases=[{'company': 'mysql'}], days=3650) # 立即启动对聚合数据的清理工作
1316
1416
 
@@ -209,7 +209,7 @@ class MysqlUpload:
209
209
  cols_exist = [col['COLUMN_NAME'] for col in columns] # 数据表的所有列, 返回 list
210
210
  update_col = [item for item in cols_exist if item not in icm_update and item != 'id'] # 除了主键外的其他列
211
211
 
212
- # unique_keys 示例: `日期`, `推广费余额`
212
+ # unique_keys 示例: `日期`, `余额`
213
213
  unique_keys = ', '.join(f"`{item}`" for item in update_col) # 列名需要转义
214
214
  condition = []
215
215
  for up_col in icm_update:
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: mdbq
3
- Version: 1.7.3
3
+ Version: 1.7.5
4
4
  Home-page: https://pypi.org/project/mdbsql
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='1.7.3',
6
+ version='1.7.5',
7
7
  author='xigua, ',
8
8
  author_email="2587125111@qq.com",
9
9
  url='https://pypi.org/project/mdbsql',
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