mdbq 4.0.47__py3-none-any.whl → 4.0.49__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.
- mdbq/__version__.py +1 -1
- mdbq/aggregation/query_data.py +166 -576
- mdbq/aggregation/set_typ_dict.py +591 -0
- {mdbq-4.0.47.dist-info → mdbq-4.0.49.dist-info}/METADATA +1 -1
- {mdbq-4.0.47.dist-info → mdbq-4.0.49.dist-info}/RECORD +7 -6
- {mdbq-4.0.47.dist-info → mdbq-4.0.49.dist-info}/WHEEL +0 -0
- {mdbq-4.0.47.dist-info → mdbq-4.0.49.dist-info}/top_level.txt +0 -0
mdbq/aggregation/query_data.py
CHANGED
@@ -5,6 +5,7 @@ from mdbq.mysql import s_query
|
|
5
5
|
from mdbq.myconf import myconf
|
6
6
|
from mdbq.log import mylogger
|
7
7
|
from mdbq.other import error_handler
|
8
|
+
from mdbq.aggregation.set_typ_dict import SET_TYP_DICT
|
8
9
|
import datetime
|
9
10
|
from dateutil.relativedelta import relativedelta
|
10
11
|
import pandas as pd
|
@@ -219,6 +220,139 @@ class MysqlDatasQuery:
|
|
219
220
|
self.download_manager = download_manager
|
220
221
|
self.pf_datas = []
|
221
222
|
|
223
|
+
@upload_data_decorator()
|
224
|
+
def shops_concat(self, db_name='聚合数据', table_name='多店聚合_日报'):
|
225
|
+
shop_list = {
|
226
|
+
'DS-WLM天猫旗舰店': '天猫', # e3
|
227
|
+
'DS-WLM淘宝商城C店': 'c店',
|
228
|
+
'DS-SJ天猫旗舰店': '圣积',
|
229
|
+
'wanlima万里马箱包outlet店': '奥莱',
|
230
|
+
'DS-WLM京东旗舰店': '京东pop',
|
231
|
+
'拼多多万里马箱包官方旗舰店': '拼多多_丹宁',
|
232
|
+
'WLM-拼多多TOGO牛皮官方旗舰店': '拼多多_togo',
|
233
|
+
'万里马官方旗舰店': '天猫', # 平台
|
234
|
+
'万里马官方企业店': 'c店',
|
235
|
+
'saintjack旗舰店': '圣积',
|
236
|
+
'wanlima万里马箱包outlet店': '奥莱',
|
237
|
+
'万里马京东旗舰店': '京东pop',
|
238
|
+
'万里马箱包官方旗舰店': '拼多多_丹宁',
|
239
|
+
'万里马箱包皮具官方旗舰店': '拼多多_togo',
|
240
|
+
'万里马箱包outlet店': '奥莱', # 推广
|
241
|
+
'京东箱包旗舰店': '京东pop',
|
242
|
+
'京东自营旗舰店女包': '京东自营',
|
243
|
+
}
|
244
|
+
df_real_sales = self._get_real_sales(shop_list=shop_list)
|
245
|
+
df_shop_gmv = self._get_shop_gmv(shop_list=shop_list)
|
246
|
+
df_tg_data = self._get_tg_data(shop_list=shop_list)
|
247
|
+
df = df_shop_gmv.merge(df_real_sales, on=['日期', '店铺名称'], how='left')
|
248
|
+
df = df.merge(df_tg_data, on=['日期', '店铺名称'], how='left')
|
249
|
+
df.fillna(0, inplace=True)
|
250
|
+
set_typ = SET_TYP_DICT[f'{db_name}_{table_name}']
|
251
|
+
return df, {
|
252
|
+
'db_name': db_name,
|
253
|
+
'table_name': table_name,
|
254
|
+
'set_typ': set_typ,
|
255
|
+
'primary_keys': [], # 创建唯一主键
|
256
|
+
'check_duplicate': False, # 检查重复数据
|
257
|
+
'duplicate_columns': [], # 指定排重的组合键
|
258
|
+
'update_on_duplicate': True, # 更新旧数据
|
259
|
+
'allow_null': False, # 允许插入空值
|
260
|
+
'partition_by': None, # 分表方式
|
261
|
+
'partition_date_column': '日期', # 用于分表的日期列名,默认为'日期'
|
262
|
+
'indexes': [], # 普通索引列
|
263
|
+
'transaction_mode': 'batch', # 事务模式
|
264
|
+
'unique_keys': [['日期', '店铺名称']], # 唯一约束列表
|
265
|
+
}
|
266
|
+
|
267
|
+
def _get_tg_data(self, db_name='聚合数据', table_name='多店推广场景_按日聚合', shop_list:dict=None):
|
268
|
+
start_date, end_date = self.months_data(num=self.months)
|
269
|
+
projection = ['日期', '店铺名称', '营销场景', '花费', '成交金额']
|
270
|
+
df = self.download_manager.data_to_df(
|
271
|
+
db_name=db_name,
|
272
|
+
table_name=table_name,
|
273
|
+
start_date=start_date,
|
274
|
+
end_date=end_date,
|
275
|
+
projection=projection,
|
276
|
+
)
|
277
|
+
if df.empty:
|
278
|
+
return pd.DataFrame(columns=['日期', '店铺名称', '实际消耗', '推广成交金额'])
|
279
|
+
df = df[(df['店铺名称'].isin(shop_list.keys()))]
|
280
|
+
df = df.astype({
|
281
|
+
'日期': 'datetime64[ns]',
|
282
|
+
'花费': 'float64',
|
283
|
+
'成交金额': 'float64'
|
284
|
+
})
|
285
|
+
df = df.groupby(['日期', '店铺名称'], as_index=False).agg({'花费': 'sum', '成交金额': 'sum'}).rename(columns={'花费': '实际消耗', '成交金额': '推广成交金额'})
|
286
|
+
df['店铺名称'] = df['店铺名称'].map(shop_list)
|
287
|
+
return df
|
288
|
+
|
289
|
+
def _get_shop_gmv(self, db_name='生意参谋3', table_name='取数_店铺_整体流量', shop_list:dict=None):
|
290
|
+
"""获取平台数据"""
|
291
|
+
start_date, end_date = self.months_data(num=self.months)
|
292
|
+
projection = ['日期', '店铺名称', '粒度', '维度', '数据周期', '访客数', '浏览量', '支付金额', '支付买家数', '支付件数']
|
293
|
+
df = self.download_manager.data_to_df(
|
294
|
+
db_name=db_name,
|
295
|
+
table_name=table_name,
|
296
|
+
start_date=start_date,
|
297
|
+
end_date=end_date,
|
298
|
+
projection=projection,
|
299
|
+
)
|
300
|
+
if len(df) == 0:
|
301
|
+
return pd.DataFrame(columns=['日期', '店铺名称', '访客数', '浏览量', '支付金额', '支付买家数', '支付件数'])
|
302
|
+
df = df[(df['店铺名称'].isin(shop_list.keys())) & (df['粒度'] == '店铺') & (df['维度'] == '整体流量') & (df['数据周期'] == '分日')]
|
303
|
+
df = df.astype({
|
304
|
+
'日期': 'datetime64[ns]',
|
305
|
+
'访客数': 'int64',
|
306
|
+
'浏览量': 'int64',
|
307
|
+
'支付金额': 'float64',
|
308
|
+
'支付买家数': 'int64',
|
309
|
+
'支付件数': 'int64'
|
310
|
+
})
|
311
|
+
df = df.groupby(['日期', '店铺名称'], as_index=False).agg({
|
312
|
+
'访客数': 'sum',
|
313
|
+
'浏览量': 'sum',
|
314
|
+
'支付金额': 'sum',
|
315
|
+
'支付买家数': 'sum',
|
316
|
+
'支付件数': 'sum'
|
317
|
+
})
|
318
|
+
df['店铺名称'] = df['店铺名称'].map(shop_list)
|
319
|
+
return df
|
320
|
+
|
321
|
+
def _get_real_sales(self, db_name='生意经3', table_name='零售明细统计', shop_list:dict=None):
|
322
|
+
"""获取e3销售"""
|
323
|
+
start_date, end_date = self.months_data(num=self.months)
|
324
|
+
projection = ['验收日期', '商店名称', '商品代码', '金额']
|
325
|
+
__res = []
|
326
|
+
for year in range(2025, datetime.datetime.today().year+1):
|
327
|
+
df = self.download_manager.data_to_df(
|
328
|
+
db_name=db_name,
|
329
|
+
table_name=f'{table_name}_{year}',
|
330
|
+
start_date=start_date,
|
331
|
+
end_date=end_date,
|
332
|
+
projection=projection,
|
333
|
+
)
|
334
|
+
__res.append(df)
|
335
|
+
df_default = pd.DataFrame(columns=['日期', '店铺名称', '实际营收'])
|
336
|
+
if len(__res) == 0:
|
337
|
+
return df_default
|
338
|
+
df = pd.concat(__res, ignore_index=True)
|
339
|
+
if df.empty:
|
340
|
+
return df_default
|
341
|
+
df = df[(df['商品代码'] != '20160222') & (df['商店名称'].isin(shop_list.keys()))] # 剔除补单数据
|
342
|
+
if df.empty:
|
343
|
+
return df_default
|
344
|
+
df['商店名称'] = df['商店名称'].map(shop_list)
|
345
|
+
df = df.astype({
|
346
|
+
'验收日期': 'datetime64[ns]', '金额': 'float64'
|
347
|
+
}).groupby(
|
348
|
+
['验收日期', '商店名称'], as_index=False
|
349
|
+
).agg({
|
350
|
+
'金额': 'sum'
|
351
|
+
}).rename(
|
352
|
+
columns={'商店名称': '店铺名称', '验收日期': '日期', '金额': '实际营收'}
|
353
|
+
)
|
354
|
+
return df
|
355
|
+
|
222
356
|
# @error_handler.log_on_exception(logger=logger)
|
223
357
|
def tg_wxt(self, db_name='聚合数据', table_name='天猫_主体报表', is_maximize=True):
|
224
358
|
start_date, end_date = self.months_data(num=self.months)
|
@@ -293,22 +427,7 @@ class MysqlDatasQuery:
|
|
293
427
|
}
|
294
428
|
)
|
295
429
|
df.insert(loc=1, column='推广渠道', value='万相台无界版')
|
296
|
-
set_typ = {
|
297
|
-
'日期': 'date',
|
298
|
-
'推广渠道': 'varchar(100)',
|
299
|
-
'店铺名称': 'varchar(100)',
|
300
|
-
'营销场景': 'varchar(100)',
|
301
|
-
'商品id': 'bigint',
|
302
|
-
'花费': 'decimal(12,2)',
|
303
|
-
'展现量': 'int',
|
304
|
-
'点击量': 'int',
|
305
|
-
'加购量': 'int',
|
306
|
-
'成交笔数': 'int',
|
307
|
-
'成交金额': 'decimal(12,2)',
|
308
|
-
'自然流量曝光量': 'int',
|
309
|
-
'直接成交笔数': 'int',
|
310
|
-
'直接成交金额': 'decimal(12,2)',
|
311
|
-
}
|
430
|
+
set_typ = SET_TYP_DICT[f'{db_name}_{table_name}']
|
312
431
|
# 制作其他聚合表
|
313
432
|
self.pf_datas.append(
|
314
433
|
{
|
@@ -362,13 +481,7 @@ class MysqlDatasQuery:
|
|
362
481
|
p= df_pic.pop('商品索引')
|
363
482
|
df_pic.insert(loc=2, column='商品索引', value=p) # df中插入新列
|
364
483
|
df_pic['更新时间'] = datetime.datetime.now().strftime("%Y-%m-%d %H:%M:%S")
|
365
|
-
set_typ =
|
366
|
-
'商品id': 'bigint',
|
367
|
-
'店铺名称': 'varchar(100)',
|
368
|
-
'商品索引': 'smallint',
|
369
|
-
'花费': 'decimal(12,2)',
|
370
|
-
'更新时间': 'timestamp',
|
371
|
-
}
|
484
|
+
set_typ = SET_TYP_DICT['属性设置3_商品索引表_主推排序调用']
|
372
485
|
logger.info('更新', {'主机': f'{host}:{port}', '库': '属性设置3', '表': '商品索引表_主推排序调用'})
|
373
486
|
uld.upload_data(
|
374
487
|
db_name='属性设置3',
|
@@ -462,22 +575,7 @@ class MysqlDatasQuery:
|
|
462
575
|
}
|
463
576
|
)
|
464
577
|
df.insert(loc=1, column='推广渠道', value='万相台无界版') # df中插入新列
|
465
|
-
set_typ = {
|
466
|
-
'日期': 'date',
|
467
|
-
'推广渠道': 'varchar(100)',
|
468
|
-
'店铺名称': 'varchar(100)',
|
469
|
-
'营销场景': 'varchar(100)',
|
470
|
-
'商品id': 'bigint',
|
471
|
-
'花费': 'decimal(12,2)',
|
472
|
-
'展现量': 'int',
|
473
|
-
'点击量': 'int',
|
474
|
-
'加购量': 'int',
|
475
|
-
'成交笔数': 'int',
|
476
|
-
'成交金额': 'decimal(12,2)',
|
477
|
-
'自然流量曝光量': 'int',
|
478
|
-
'直接成交笔数': 'int',
|
479
|
-
'直接成交金额': 'decimal(12,2)',
|
480
|
-
}
|
578
|
+
set_typ = SET_TYP_DICT[f'{db_name}_{table_name}']
|
481
579
|
return df, {
|
482
580
|
'db_name': db_name,
|
483
581
|
'table_name': table_name,
|
@@ -568,22 +666,7 @@ class MysqlDatasQuery:
|
|
568
666
|
}
|
569
667
|
)
|
570
668
|
df.insert(loc=1, column='推广渠道', value='万相台无界版') # df中插入新列
|
571
|
-
set_typ = {
|
572
|
-
'日期': 'date',
|
573
|
-
'推广渠道': 'varchar(100)',
|
574
|
-
'店铺名称': 'varchar(100)',
|
575
|
-
'营销场景': 'varchar(100)',
|
576
|
-
'商品id': 'bigint',
|
577
|
-
'花费': 'decimal(12,2)',
|
578
|
-
'展现量': 'int',
|
579
|
-
'点击量': 'int',
|
580
|
-
'加购量': 'int',
|
581
|
-
'成交笔数': 'int',
|
582
|
-
'成交金额': 'decimal(12,2)',
|
583
|
-
'自然流量曝光量': 'int',
|
584
|
-
'直接成交笔数': 'int',
|
585
|
-
'直接成交金额': 'decimal(12,2)',
|
586
|
-
}
|
669
|
+
set_typ = SET_TYP_DICT[f'{db_name}_{table_name}']
|
587
670
|
return df, {
|
588
671
|
'db_name': db_name,
|
589
672
|
'table_name': table_name,
|
@@ -674,22 +757,7 @@ class MysqlDatasQuery:
|
|
674
757
|
}
|
675
758
|
)
|
676
759
|
df.insert(loc=1, column='推广渠道', value='万相台无界版') # df中插入新列
|
677
|
-
set_typ = {
|
678
|
-
'日期': 'date',
|
679
|
-
'推广渠道': 'varchar(100)',
|
680
|
-
'店铺名称': 'varchar(100)',
|
681
|
-
'营销场景': 'varchar(100)',
|
682
|
-
'商品id': 'bigint',
|
683
|
-
'花费': 'decimal(12,2)',
|
684
|
-
'展现量': 'int',
|
685
|
-
'点击量': 'int',
|
686
|
-
'加购量': 'int',
|
687
|
-
'成交笔数': 'int',
|
688
|
-
'成交金额': 'decimal(12,2)',
|
689
|
-
'自然流量曝光量': 'int',
|
690
|
-
'直接成交笔数': 'int',
|
691
|
-
'直接成交金额': 'decimal(12,2)',
|
692
|
-
}
|
760
|
+
set_typ = SET_TYP_DICT[f'{db_name}_{table_name}']
|
693
761
|
return df, {
|
694
762
|
'db_name': db_name,
|
695
763
|
'table_name': table_name,
|
@@ -749,22 +817,7 @@ class MysqlDatasQuery:
|
|
749
817
|
else '300+' if x >= 300
|
750
818
|
else '300以下'
|
751
819
|
)
|
752
|
-
set_typ = {
|
753
|
-
'日期': 'date',
|
754
|
-
'推广渠道': 'varchar(100)',
|
755
|
-
'店铺名称': 'varchar(100)',
|
756
|
-
'宝贝id': 'bigint',
|
757
|
-
'行业类目': 'varchar(255)',
|
758
|
-
'销售额': 'decimal(12,2)',
|
759
|
-
'销售量': 'int',
|
760
|
-
'订单数': 'int',
|
761
|
-
'退货量': 'int',
|
762
|
-
'退款额': 'decimal(12,2)',
|
763
|
-
'退款额_发货后': 'decimal(12,2)',
|
764
|
-
'退货量_发货后': 'int',
|
765
|
-
'件均价': 'mediumint',
|
766
|
-
'价格带': 'varchar(100)',
|
767
|
-
}
|
820
|
+
set_typ = SET_TYP_DICT[f'{db_name}_{table_name}']
|
768
821
|
return df, {
|
769
822
|
'db_name': db_name,
|
770
823
|
'table_name': table_name,
|
@@ -953,25 +1006,7 @@ class MysqlDatasQuery:
|
|
953
1006
|
else x['人群分类'], axis=1
|
954
1007
|
)
|
955
1008
|
df['人群分类'] = df['人群分类'].apply(lambda x: str(x).upper() if x else x)
|
956
|
-
set_typ = {
|
957
|
-
'日期': 'date',
|
958
|
-
'推广渠道': 'varchar(100)',
|
959
|
-
'店铺名称': 'varchar(100)',
|
960
|
-
'营销场景': 'varchar(100)',
|
961
|
-
'商品id': 'bigint',
|
962
|
-
'花费': 'decimal(10,2)',
|
963
|
-
'展现量': 'int',
|
964
|
-
'点击量': 'int',
|
965
|
-
'人群名字': 'varchar(255)',
|
966
|
-
'加购量': 'int',
|
967
|
-
'成交笔数': 'int',
|
968
|
-
'成交金额': 'decimal(12,2)',
|
969
|
-
'直接成交笔数': 'int',
|
970
|
-
'直接成交金额': 'decimal(12,2)',
|
971
|
-
'消费力层级': 'varchar(100)',
|
972
|
-
'用户年龄': 'varchar(100)',
|
973
|
-
'人群分类': 'varchar(100)',
|
974
|
-
}
|
1009
|
+
set_typ = SET_TYP_DICT[f'{db_name}_{table_name}']
|
975
1010
|
df.fillna(0, inplace=True)
|
976
1011
|
return df, {
|
977
1012
|
'db_name': db_name,
|
@@ -1087,25 +1122,7 @@ class MysqlDatasQuery:
|
|
1087
1122
|
)
|
1088
1123
|
else:
|
1089
1124
|
df['词分类'] = df['词名字_词包名字'].apply(lambda x: self.ret_keyword(keyword=str(x), as_file=False))
|
1090
|
-
set_typ = {
|
1091
|
-
'日期': 'date',
|
1092
|
-
'推广渠道': 'varchar(100)',
|
1093
|
-
'店铺名称': 'varchar(100)',
|
1094
|
-
'营销场景': 'varchar(100)',
|
1095
|
-
'商品id': 'bigint',
|
1096
|
-
'词类型': 'varchar(100)',
|
1097
|
-
'词名字_词包名字': 'varchar(255)',
|
1098
|
-
'花费': 'decimal(10,2)',
|
1099
|
-
'展现量': 'int',
|
1100
|
-
'点击量': 'int',
|
1101
|
-
'加购量': 'int',
|
1102
|
-
'成交笔数': 'int',
|
1103
|
-
'成交金额': 'decimal(12,2)',
|
1104
|
-
'直接成交笔数': 'int',
|
1105
|
-
'直接成交金额': 'decimal(12,2)',
|
1106
|
-
'是否品牌词': 'varchar(100)',
|
1107
|
-
'词分类': 'varchar(100)',
|
1108
|
-
}
|
1125
|
+
set_typ = SET_TYP_DICT[f'{db_name}_{table_name}']
|
1109
1126
|
return df, {
|
1110
1127
|
'db_name': db_name,
|
1111
1128
|
'table_name': table_name,
|
@@ -1254,24 +1271,7 @@ class MysqlDatasQuery:
|
|
1254
1271
|
'数据主体': df[['日期', '店铺名称', '推广渠道', '营销场景', '花费', '展现量', '观看次数', '加购量', '成交笔数', '成交金额', '直接成交笔数', '直接成交金额']]
|
1255
1272
|
},
|
1256
1273
|
) # 制作其他聚合表
|
1257
|
-
set_typ = {
|
1258
|
-
'日期': 'date',
|
1259
|
-
'推广渠道': 'varchar(100)',
|
1260
|
-
'店铺名称': 'varchar(100)',
|
1261
|
-
'营销场景': 'varchar(100)',
|
1262
|
-
'人群名字': 'varchar(255)',
|
1263
|
-
'计划名字': 'varchar(255)',
|
1264
|
-
'花费': 'decimal(10,2)',
|
1265
|
-
'观看次数': 'int',
|
1266
|
-
'展现量': 'int',
|
1267
|
-
'进店量': 'int',
|
1268
|
-
'粉丝关注量': 'int',
|
1269
|
-
'加购量': 'int',
|
1270
|
-
'成交笔数': 'int',
|
1271
|
-
'成交金额': 'decimal(12,2)',
|
1272
|
-
'直接成交笔数': 'int',
|
1273
|
-
'直接成交金额': 'decimal(12,2)',
|
1274
|
-
}
|
1274
|
+
set_typ = SET_TYP_DICT[f'{db_name}_{table_name}']
|
1275
1275
|
return df, {
|
1276
1276
|
'db_name': db_name,
|
1277
1277
|
'table_name': table_name,
|
@@ -1365,21 +1365,7 @@ class MysqlDatasQuery:
|
|
1365
1365
|
'数据主体': df[['日期', '店铺名称', '推广渠道', '营销场景', '花费', '展现量', '点击量', '加购量', '成交笔数', '成交金额']]
|
1366
1366
|
},
|
1367
1367
|
) # 制作其他聚合表
|
1368
|
-
set_typ = {
|
1369
|
-
'日期': 'date',
|
1370
|
-
'推广渠道': 'varchar(100)',
|
1371
|
-
'店铺名称': 'varchar(100)',
|
1372
|
-
'营销场景': 'varchar(100)',
|
1373
|
-
'报表类型': 'varchar(100)',
|
1374
|
-
'花费': 'decimal(10,2)',
|
1375
|
-
'展现量': 'int',
|
1376
|
-
'点击量': 'int',
|
1377
|
-
'加购量': 'int',
|
1378
|
-
'成交笔数': 'int',
|
1379
|
-
'成交金额': 'decimal(12,2)',
|
1380
|
-
'品牌搜索量': 'int',
|
1381
|
-
'品牌搜索人数': 'int',
|
1382
|
-
}
|
1368
|
+
set_typ = SET_TYP_DICT[f'{db_name}_{table_name}']
|
1383
1369
|
logger.info('更新', {'主机': f'{host}:{port}', '库': db_name, '表': table_name})
|
1384
1370
|
return df, {
|
1385
1371
|
'db_name': db_name,
|
@@ -1420,15 +1406,7 @@ class MysqlDatasQuery:
|
|
1420
1406
|
idx = df.groupby(['日期', '商品id'])['更新时间'].idxmax()
|
1421
1407
|
df = df.loc[idx]
|
1422
1408
|
df.rename(columns={'商品id': '宝贝id'}, inplace=True)
|
1423
|
-
set_typ = {
|
1424
|
-
'日期': 'date',
|
1425
|
-
'宝贝id': 'bigint',
|
1426
|
-
'商家编码': 'varchar(255)',
|
1427
|
-
'一级类目': 'varchar(100)',
|
1428
|
-
'二级类目': 'varchar(100)',
|
1429
|
-
'三级类目': 'varchar(100)',
|
1430
|
-
'更新时间': 'timestamp'
|
1431
|
-
}
|
1409
|
+
set_typ = SET_TYP_DICT[f'{db_name}_{table_name}']
|
1432
1410
|
logger.info('更新', {'主机': f'{host}:{port}', '库': db_name, '表': table_name})
|
1433
1411
|
return df, {
|
1434
1412
|
'db_name': db_name,
|
@@ -1470,16 +1448,7 @@ class MysqlDatasQuery:
|
|
1470
1448
|
idx = df.groupby(['日期', 'sku_id'])['更新时间'].idxmax()
|
1471
1449
|
df = df.loc[idx]
|
1472
1450
|
df.rename(columns={'白底图': '商品图片'}, inplace=True)
|
1473
|
-
set_typ = {
|
1474
|
-
'日期': 'date',
|
1475
|
-
'商品id': 'bigint',
|
1476
|
-
# '白底图': 'varchar(255)',
|
1477
|
-
'商品图片': 'varchar(255)',
|
1478
|
-
'商家编码': 'varchar(255)',
|
1479
|
-
'sku_id': 'bigint',
|
1480
|
-
'sku地址': 'varchar(255)',
|
1481
|
-
'更新时间': 'timestamp'
|
1482
|
-
}
|
1451
|
+
set_typ = SET_TYP_DICT[f'{db_name}_{table_name}']
|
1483
1452
|
return df, {
|
1484
1453
|
'db_name': db_name,
|
1485
1454
|
'table_name': table_name,
|
@@ -1530,21 +1499,7 @@ class MysqlDatasQuery:
|
|
1530
1499
|
return item['上市年份']
|
1531
1500
|
|
1532
1501
|
df['上市年份'] = df['商品id'].apply(lambda x: check_year(x))
|
1533
|
-
set_typ = {
|
1534
|
-
'日期': 'date',
|
1535
|
-
'店铺id': 'bigint',
|
1536
|
-
'店铺名称': 'varchar(255)',
|
1537
|
-
'商家id': 'bigint',
|
1538
|
-
'商品id': 'bigint',
|
1539
|
-
'上市年份': 'varchar(50)',
|
1540
|
-
'商品标题': 'varchar(255)',
|
1541
|
-
'商品链接': 'varchar(255)',
|
1542
|
-
'商品图片': 'varchar(255)',
|
1543
|
-
'销量': 'varchar(50)',
|
1544
|
-
'页面价': 'int',
|
1545
|
-
'data_sku': 'varchar(1000)',
|
1546
|
-
'更新时间': 'timestamp',
|
1547
|
-
}
|
1502
|
+
set_typ = SET_TYP_DICT[f'{db_name}_{table_name}']
|
1548
1503
|
return df, {
|
1549
1504
|
'db_name': db_name,
|
1550
1505
|
'table_name': table_name,
|
@@ -1624,48 +1579,7 @@ class MysqlDatasQuery:
|
|
1624
1579
|
df['上市季节'] = df['上市年月'].apply(lambda x: check_jijie(x))
|
1625
1580
|
p = df.pop('上市季节')
|
1626
1581
|
df.insert(loc=9, column='上市季节', value=p)
|
1627
|
-
set_typ = {
|
1628
|
-
'商品id': 'BIGINT',
|
1629
|
-
'店铺名称': 'varchar(100)',
|
1630
|
-
'商品名称': 'varchar(255)',
|
1631
|
-
'主商品id': 'BIGINT',
|
1632
|
-
'商品类型': 'varchar(50)',
|
1633
|
-
'货号': 'varchar(50)',
|
1634
|
-
'商品状态': 'varchar(50)',
|
1635
|
-
'商品标签': 'varchar(50)',
|
1636
|
-
'商品访客数': 'int',
|
1637
|
-
'商品浏览量': 'int',
|
1638
|
-
'平均停留时长': 'decimal(10,2)',
|
1639
|
-
'商品详情页跳出率': 'decimal(6,4)',
|
1640
|
-
'商品收藏人数': 'smallint',
|
1641
|
-
'商品加购件数': 'smallint',
|
1642
|
-
'商品加购人数': 'smallint',
|
1643
|
-
'下单买家数': 'smallint',
|
1644
|
-
'下单件数': 'smallint',
|
1645
|
-
'下单金额': 'decimal(10,2)',
|
1646
|
-
'下单转化率': 'decimal(10,4)',
|
1647
|
-
'支付买家数': 'smallint',
|
1648
|
-
'支付件数': 'int',
|
1649
|
-
'支付金额': 'decimal(12,2)',
|
1650
|
-
'商品支付转化率': 'decimal(10,4)',
|
1651
|
-
'支付新买家数': 'smallint',
|
1652
|
-
'支付老买家数': 'smallint',
|
1653
|
-
'老买家支付金额': 'decimal(10,2)',
|
1654
|
-
'聚划算支付金额': 'decimal(10,2)',
|
1655
|
-
'访客平均价值': 'decimal(10,2)',
|
1656
|
-
'成功退款金额': 'decimal(10,2)',
|
1657
|
-
'竞争力评分': 'smallint',
|
1658
|
-
'年累计支付金额': 'decimal(12,2)',
|
1659
|
-
'月累计支付金额': 'decimal(12,2)',
|
1660
|
-
'月累计支付件数': 'mediumint',
|
1661
|
-
'搜索引导支付转化率': 'decimal(6,4)',
|
1662
|
-
'搜索引导访客数': 'smallint',
|
1663
|
-
'搜索引导支付买家数': 'smallint',
|
1664
|
-
'结构化详情引导转化率': 'decimal(6,4)',
|
1665
|
-
'结构化详情引导成交占比': 'decimal(6,4)',
|
1666
|
-
'更新时间': 'timestamp',
|
1667
|
-
'上市年份': 'varchar(100)',
|
1668
|
-
}
|
1582
|
+
set_typ = SET_TYP_DICT[f'{db_name}_{table_name}']
|
1669
1583
|
return df, {
|
1670
1584
|
'db_name': db_name,
|
1671
1585
|
'table_name': table_name,
|
@@ -1754,23 +1668,7 @@ class MysqlDatasQuery:
|
|
1754
1668
|
df = pd.merge(df, df_visitor3, how='left', left_on='三级来源', right_on='三级来源')
|
1755
1669
|
for col in ['一级来源索引', '二级来源索引', '三级来源索引']:
|
1756
1670
|
df[col] = df[col].apply(lambda x: 1000 if str(x) == 'nan' else x)
|
1757
|
-
set_typ = {
|
1758
|
-
'日期': 'date',
|
1759
|
-
'店铺名称': 'varchar(100)',
|
1760
|
-
'类别': 'varchar(100)',
|
1761
|
-
'来源构成': 'varchar(100)',
|
1762
|
-
'一级来源': 'varchar(100)',
|
1763
|
-
'二级来源': 'varchar(100)',
|
1764
|
-
'三级来源': 'varchar(100)',
|
1765
|
-
'访客数': 'int',
|
1766
|
-
'支付金额': 'decimal(12,2)',
|
1767
|
-
'支付买家数': 'int',
|
1768
|
-
'支付转化率': 'decimal(10,4)',
|
1769
|
-
'加购人数': 'int',
|
1770
|
-
'一级来源索引': 'smallint',
|
1771
|
-
'二级来源索引': 'smallint',
|
1772
|
-
'三级来源索引': 'smallint',
|
1773
|
-
}
|
1671
|
+
set_typ = SET_TYP_DICT[f'{db_name}_{table_name}']
|
1774
1672
|
return df, {
|
1775
1673
|
'db_name': db_name,
|
1776
1674
|
'table_name': table_name,
|
@@ -1799,15 +1697,7 @@ class MysqlDatasQuery:
|
|
1799
1697
|
df = pd.DataFrame(data=data_values)
|
1800
1698
|
df.sort_values(by=['款号', '日期'], ascending=[False, True], ignore_index=True, inplace=True)
|
1801
1699
|
df.drop_duplicates(subset=['款号'], keep='last', inplace=True, ignore_index=True)
|
1802
|
-
set_typ = {
|
1803
|
-
'日期': 'date',
|
1804
|
-
'款号': 'varchar(100)',
|
1805
|
-
'年份季节': 'varchar(100)',
|
1806
|
-
'吊牌价': 'decimal(10,2)',
|
1807
|
-
'成本价': 'decimal(10,2)',
|
1808
|
-
'天猫页面价': 'decimal(10,2)',
|
1809
|
-
'天猫中促价': 'decimal(10,2)',
|
1810
|
-
}
|
1700
|
+
set_typ = SET_TYP_DICT[f'{db_name}_{table_name}']
|
1811
1701
|
return df, {
|
1812
1702
|
'db_name': db_name,
|
1813
1703
|
'table_name': table_name,
|
@@ -1899,23 +1789,7 @@ class MysqlDatasQuery:
|
|
1899
1789
|
cols = list(df.columns)
|
1900
1790
|
cols.insert(3, cols.pop(cols.index('spu_id')))
|
1901
1791
|
df = df[cols]
|
1902
|
-
set_typ = {
|
1903
|
-
'日期': 'date',
|
1904
|
-
'店铺名称': 'varchar(100)',
|
1905
|
-
'产品线': 'varchar(100)',
|
1906
|
-
'触发sku_id': 'bigint',
|
1907
|
-
'跟单sku_id': 'bigint',
|
1908
|
-
'spu_id': 'bigint',
|
1909
|
-
'花费': 'decimal(10,2)',
|
1910
|
-
'展现数': 'int',
|
1911
|
-
'点击数': 'int',
|
1912
|
-
'直接订单行': 'int',
|
1913
|
-
'直接订单金额': 'decimal(10,2)',
|
1914
|
-
'总订单行': 'int',
|
1915
|
-
'总订单金额': 'decimal(10,2)',
|
1916
|
-
'直接加购数': 'int',
|
1917
|
-
'总加购数': 'int',
|
1918
|
-
}
|
1792
|
+
set_typ = SET_TYP_DICT[f'{db_name}_{table_name}']
|
1919
1793
|
return df, {
|
1920
1794
|
'db_name': db_name,
|
1921
1795
|
'table_name': table_name,
|
@@ -1970,19 +1844,7 @@ class MysqlDatasQuery:
|
|
1970
1844
|
}
|
1971
1845
|
)
|
1972
1846
|
df = df[df['花费'] > 0]
|
1973
|
-
set_typ = {
|
1974
|
-
'日期': 'date',
|
1975
|
-
'店铺名称': 'varchar(100)',
|
1976
|
-
'产品线': 'varchar(100)',
|
1977
|
-
'花费': 'decimal(10,2)',
|
1978
|
-
'全站投产比': 'decimal(10,2)',
|
1979
|
-
'全站交易额': 'decimal(10,2)',
|
1980
|
-
'全站订单行': 'decimal(10,2)',
|
1981
|
-
'全站订单成本': 'decimal(10,2)',
|
1982
|
-
'全站费比': 'decimal(8,4)',
|
1983
|
-
'核心位置展现量': 'int',
|
1984
|
-
'核心位置点击量': 'int',
|
1985
|
-
}
|
1847
|
+
set_typ = SET_TYP_DICT[f'{db_name}_{table_name}']
|
1986
1848
|
return df, {
|
1987
1849
|
'db_name': db_name,
|
1988
1850
|
'table_name': table_name,
|
@@ -2058,30 +1920,7 @@ class MysqlDatasQuery:
|
|
2058
1920
|
df['k_是否品牌词'] = df['k_是否品牌词'].apply(lambda x: '品牌词' if x else '-')
|
2059
1921
|
df['s_是否品牌词'] = df['搜索词'].str.contains('万里马|wanlima', regex=True)
|
2060
1922
|
df['s_是否品牌词'] = df['s_是否品牌词'].apply(lambda x: '品牌词' if x else '-')
|
2061
|
-
set_typ = {
|
2062
|
-
'日期': 'date',
|
2063
|
-
'产品线': 'varchar(100)',
|
2064
|
-
'计划类型': 'varchar(100)',
|
2065
|
-
'计划id': 'varchar(100)',
|
2066
|
-
'搜索词': 'varchar(100)',
|
2067
|
-
'关键词': 'varchar(100)',
|
2068
|
-
'关键词购买类型': 'varchar(100)',
|
2069
|
-
'广告定向类型': 'varchar(100)',
|
2070
|
-
'展现数': 'int',
|
2071
|
-
'点击数': 'int',
|
2072
|
-
'花费': 'decimal(10,2)',
|
2073
|
-
'直接订单行': 'int',
|
2074
|
-
'直接订单金额': 'decimal(12,2)',
|
2075
|
-
'总订单行': 'int',
|
2076
|
-
'总订单金额': 'decimal(12,2)',
|
2077
|
-
'总加购数': 'int',
|
2078
|
-
'领券数': 'int',
|
2079
|
-
'商品关注数': 'int',
|
2080
|
-
'店铺关注数': 'int',
|
2081
|
-
'推广计划': 'varchar(100)',
|
2082
|
-
'k_是否品牌词': 'varchar(100)',
|
2083
|
-
's_是否品牌词': 'varchar(100)',
|
2084
|
-
}
|
1923
|
+
set_typ = SET_TYP_DICT[f'{db_name}_{table_name}']
|
2085
1924
|
return df, {
|
2086
1925
|
'db_name': db_name,
|
2087
1926
|
'table_name': table_name,
|
@@ -2131,19 +1970,7 @@ class MysqlDatasQuery:
|
|
2131
1970
|
idx = df.groupby(['日期', '店铺名称', '商品id', '货号', '访客数', '成交客户数', '加购商品件数', '加购人数'])['更新时间'].idxmax()
|
2132
1971
|
df = df.loc[idx]
|
2133
1972
|
df = df[['日期', '店铺名称', '商品id', '货号', '访客数', '成交客户数', '加购商品件数', '加购人数', '成交单量', '成交金额']]
|
2134
|
-
set_typ = {
|
2135
|
-
'日期': 'date',
|
2136
|
-
'店铺名称': 'varchar(100)',
|
2137
|
-
'商品id': 'varchar(100)',
|
2138
|
-
'货号': 'varchar(100)',
|
2139
|
-
'访客数': 'int',
|
2140
|
-
'成交客户数': 'int',
|
2141
|
-
'加购商品件数': 'int',
|
2142
|
-
'加购人数': 'int',
|
2143
|
-
'成交单量': 'int',
|
2144
|
-
'成交金额': 'decimal(10,2)',
|
2145
|
-
'sku_id': 'varchar(100)',
|
2146
|
-
}
|
1973
|
+
set_typ = SET_TYP_DICT[f'{db_name}_{table_name}']
|
2147
1974
|
return df, {
|
2148
1975
|
'db_name': db_name,
|
2149
1976
|
'table_name': table_name,
|
@@ -2193,19 +2020,7 @@ class MysqlDatasQuery:
|
|
2193
2020
|
idx = df.groupby(['日期', '店铺名称', '商品id', '货号', '访客数', '成交客户数', '加购商品件数', '加购人数'])['更新时间'].idxmax()
|
2194
2021
|
df = df.loc[idx]
|
2195
2022
|
df = df[['日期', '店铺名称', '商品id', '货号', '访客数', '成交客户数', '加购商品件数', '加购人数', '成交单量', '成交金额']]
|
2196
|
-
set_typ = {
|
2197
|
-
'日期': 'date',
|
2198
|
-
'店铺名称': 'varchar(100)',
|
2199
|
-
'商品id': 'varchar(100)',
|
2200
|
-
'货号': 'varchar(100)',
|
2201
|
-
'访客数': 'int',
|
2202
|
-
'成交客户数': 'int',
|
2203
|
-
'加购商品件数': 'int',
|
2204
|
-
'加购人数': 'int',
|
2205
|
-
'成交单量': 'int',
|
2206
|
-
'成交金额': 'decimal(10,2)',
|
2207
|
-
'spu_id': 'varchar(100)',
|
2208
|
-
}
|
2023
|
+
set_typ = SET_TYP_DICT[f'{db_name}_{table_name}']
|
2209
2024
|
return df, {
|
2210
2025
|
'db_name': db_name,
|
2211
2026
|
'table_name': table_name,
|
@@ -2265,20 +2080,7 @@ class MysqlDatasQuery:
|
|
2265
2080
|
idx = df.groupby(['日期', '店铺名称', '词类型', '搜索词'])['更新时间'].idxmax()
|
2266
2081
|
df = df.loc[idx]
|
2267
2082
|
df = df[['日期', '店铺名称', '词类型', '搜索词', '访客数', '加购人数', '支付金额', '支付转化率', '支付买家数', '客单价', 'uv价值']]
|
2268
|
-
|
2269
|
-
set_typ = {
|
2270
|
-
'日期': 'date',
|
2271
|
-
'店铺名称': 'varchar(100)',
|
2272
|
-
'词类型': 'varchar(100)',
|
2273
|
-
'搜索词': 'varchar(255)',
|
2274
|
-
'访客数': 'int',
|
2275
|
-
'加购人数': 'int',
|
2276
|
-
'支付金额': 'decimal(10,2)',
|
2277
|
-
'支付转化率': 'decimal(10,4)',
|
2278
|
-
'支付买家数': 'int',
|
2279
|
-
'客单价': 'decimal(10,2)',
|
2280
|
-
'uv价值': 'decimal(10,2)',
|
2281
|
-
}
|
2083
|
+
set_typ = SET_TYP_DICT[f'{db_name}_{table_name}']
|
2282
2084
|
return df, {
|
2283
2085
|
'db_name': db_name,
|
2284
2086
|
'table_name': table_name,
|
@@ -2307,80 +2109,7 @@ class MysqlDatasQuery:
|
|
2307
2109
|
projection={},
|
2308
2110
|
)
|
2309
2111
|
df.drop_duplicates(subset=['场次id'], keep='first', inplace=True, ignore_index=True)
|
2310
|
-
set_typ = {
|
2311
|
-
'日期': 'DATE',
|
2312
|
-
'店铺名称': 'varchar(100)',
|
2313
|
-
'fvr_pv': 'int',
|
2314
|
-
'封面图点击率': 'decimal(10,4)',
|
2315
|
-
'itrt_pv ': 'int',
|
2316
|
-
'开播时长': 'smallint',
|
2317
|
-
'成交笔数': 'smallint',
|
2318
|
-
'aov': 'decimal(10,2)',
|
2319
|
-
'退款金额': 'decimal(12,2)',
|
2320
|
-
'曝光pv': 'int',
|
2321
|
-
'场次信息': 'varchar(255)',
|
2322
|
-
'cmt_uv': 'int',
|
2323
|
-
'退款件数占比': 'decimal(10,4)',
|
2324
|
-
'reward_gift_cnt': 'smallint',
|
2325
|
-
'观看人数': 'int',
|
2326
|
-
'开播时长_f': 'varchar(100)',
|
2327
|
-
'reward_uv_rate': 'smallint',
|
2328
|
-
'fvr_uv': 'int',
|
2329
|
-
'直播开播时间': 'datetime',
|
2330
|
-
'商品点击率': 'decimal(10,4)',
|
2331
|
-
'加购次数': 'smallint',
|
2332
|
-
'成交转化率': 'decimal(10,4)',
|
2333
|
-
'atv': 'decimal(10,2)',
|
2334
|
-
'成交金额': 'decimal(12,2)',
|
2335
|
-
'退款人数': 'smallint',
|
2336
|
-
'index': 'smallint',
|
2337
|
-
'预售定金支付人数': 'smallint',
|
2338
|
-
'加购访客': 'smallint',
|
2339
|
-
'商品点击次数': 'int',
|
2340
|
-
'退款笔数': 'smallint',
|
2341
|
-
'itrt_uv': 'smallint',
|
2342
|
-
'成交人数': 'smallint',
|
2343
|
-
'观看总时长': 'varchar(100)',
|
2344
|
-
'加购访客转化率': 'decimal(10,4)',
|
2345
|
-
'subpay_order_cnt': 'smallint',
|
2346
|
-
'cmt_pv': 'int',
|
2347
|
-
'商品点击人数': 'int',
|
2348
|
-
'status': 'int',
|
2349
|
-
'商品曝光uv': 'int',
|
2350
|
-
'预售定金支付件数': 'smallint',
|
2351
|
-
'预售预估总金额': 'decimal(12,2)',
|
2352
|
-
'退款笔数占比': 'decimal(10,4)',
|
2353
|
-
'reward_pv': 'int',
|
2354
|
-
'访客点击量': 'int',
|
2355
|
-
'aiv': 'decimal(10,2)',
|
2356
|
-
'shr_uv': 'int',
|
2357
|
-
'浏览点击量': 'int',
|
2358
|
-
'场次图片': 'text',
|
2359
|
-
'user_role': 'varchar(100)',
|
2360
|
-
'退款人数占比': 'decimal(10,4)',
|
2361
|
-
'退款件数': 'smallint',
|
2362
|
-
'新增粉丝数': 'smallint',
|
2363
|
-
'场均观看时长': 'decimal(10,2)',
|
2364
|
-
'人均观看时长': 'decimal(10,2)',
|
2365
|
-
'加购人数': 'smallint',
|
2366
|
-
'reward_uv': 'smallint',
|
2367
|
-
'直播结束时间': 'datetime',
|
2368
|
-
'商品曝光pv': 'int',
|
2369
|
-
'shr_pv': 'int',
|
2370
|
-
'场次id': 'bigint',
|
2371
|
-
'look_pv_flowcontrol': 'smallint',
|
2372
|
-
'退款率': 'decimal(10,4)',
|
2373
|
-
'is_delete': 'varchar(50)',
|
2374
|
-
'atn_uv_rate': 'decimal(10,4)',
|
2375
|
-
'成交件数': 'smallint',
|
2376
|
-
'最大在线人数': 'int',
|
2377
|
-
'曝光uv': 'int',
|
2378
|
-
'加购件数': 'smallint',
|
2379
|
-
'预售定金支付金额': 'decimal(12,2)',
|
2380
|
-
'观看次数': 'int',
|
2381
|
-
'封面图': 'text',
|
2382
|
-
'更新时间': 'timestamp',
|
2383
|
-
}
|
2112
|
+
set_typ = SET_TYP_DICT[f'{db_name}_{table_name}']
|
2384
2113
|
ordered_columns = [
|
2385
2114
|
'日期',
|
2386
2115
|
'店铺名称',
|
@@ -2865,17 +2594,7 @@ class MysqlDatasQuery:
|
|
2865
2594
|
}
|
2866
2595
|
)
|
2867
2596
|
df.sort_values(['日期', '店铺名称', '花费'], ascending=[False, False, False], ignore_index=True, inplace=True)
|
2868
|
-
set_typ = {
|
2869
|
-
'日期': 'date',
|
2870
|
-
'店铺名称': 'varchar(100)',
|
2871
|
-
'营销场景': 'varchar(100)',
|
2872
|
-
'花费': 'decimal(12,2)',
|
2873
|
-
'展现量': 'int',
|
2874
|
-
'点击量': 'int',
|
2875
|
-
'加购量': 'int',
|
2876
|
-
'成交笔数': 'int',
|
2877
|
-
'成交金额': 'decimal(12,2)',
|
2878
|
-
}
|
2597
|
+
set_typ = SET_TYP_DICT[f'{db_name}_{table_name}']
|
2879
2598
|
return df, {
|
2880
2599
|
'db_name': db_name,
|
2881
2600
|
'table_name': table_name,
|
@@ -2951,20 +2670,7 @@ class MysqlDatasQuery:
|
|
2951
2670
|
df = df[new_columns]
|
2952
2671
|
df['更新时间'] = df.pop('更新时间')
|
2953
2672
|
df = df.astype({'日期': 'datetime64[ns]'}, errors='ignore')
|
2954
|
-
set_typ = {
|
2955
|
-
'日期': 'date',
|
2956
|
-
'店铺名称': 'varchar(100)',
|
2957
|
-
'spuid': 'varchar(100)',
|
2958
|
-
'图片': 'varchar(255)',
|
2959
|
-
'序号': 'smallint',
|
2960
|
-
'商品名称': 'varchar(255)',
|
2961
|
-
'商品款号': 'varchar(255)',
|
2962
|
-
'一级类目名称': 'varchar(255)',
|
2963
|
-
'二级类目名称': 'varchar(255)',
|
2964
|
-
'三级类目名称': 'varchar(255)',
|
2965
|
-
'数据更新时间': 'timestamp',
|
2966
|
-
'更新时间': 'timestamp',
|
2967
|
-
}
|
2673
|
+
set_typ = SET_TYP_DICT[f'{db_name}_{table_name}']
|
2968
2674
|
return df, {
|
2969
2675
|
'db_name': db_name,
|
2970
2676
|
'table_name': table_name,
|
@@ -2993,26 +2699,7 @@ class MysqlDatasQuery:
|
|
2993
2699
|
projection=projection,
|
2994
2700
|
)
|
2995
2701
|
df.drop_duplicates(subset=['日期', '人群类型', '店铺名称', '人群规模', '广告投入金额'], keep='last', inplace=True, ignore_index=True)
|
2996
|
-
set_typ = {
|
2997
|
-
'日期': 'date',
|
2998
|
-
'人群类型': 'varchar(100)',
|
2999
|
-
'店铺名称': 'varchar(100)',
|
3000
|
-
'人群规模': 'int',
|
3001
|
-
'人均成交价值': 'decimal(10, 4)',
|
3002
|
-
'datatype': 'varchar(100)',
|
3003
|
-
'人群总计': 'int',
|
3004
|
-
'广告触达占比': 'decimal(12, 4)',
|
3005
|
-
'广告投入金额': 'decimal(12, 2)',
|
3006
|
-
'touchcharge': 'decimal(12, 2)',
|
3007
|
-
'人群占比': 'decimal(12, 4)',
|
3008
|
-
'长周期roi': 'decimal(12, 4)',
|
3009
|
-
'支付买家数': 'int',
|
3010
|
-
'成交笔数': 'int',
|
3011
|
-
'成交金额': 'decimal(13, 2)',
|
3012
|
-
'触达人数': 'int',
|
3013
|
-
'长周期成交价值': 'decimal(13, 2)',
|
3014
|
-
'达摩盘id': 'int',
|
3015
|
-
}
|
2702
|
+
set_typ = SET_TYP_DICT[f'{db_name}_{table_name}']
|
3016
2703
|
return df, {
|
3017
2704
|
'db_name': db_name,
|
3018
2705
|
'table_name': table_name,
|
@@ -3051,44 +2738,7 @@ class MysqlDatasQuery:
|
|
3051
2738
|
df.rename(columns={'起始日期': '日期'}, inplace=True)
|
3052
2739
|
|
3053
2740
|
# df.drop_duplicates(subset=['日期', '店铺名称', '场景id', '父渠道id'], keep='last', inplace=True, ignore_index=True)
|
3054
|
-
set_typ = {
|
3055
|
-
'日期': 'date',
|
3056
|
-
'起始日期': 'date',
|
3057
|
-
'结束日期': 'date',
|
3058
|
-
'店铺名称': 'varchar(100)',
|
3059
|
-
'场景id': 'varchar(50)',
|
3060
|
-
'场景名字': 'varchar(50)',
|
3061
|
-
'是否子渠道': 'varchar(10)',
|
3062
|
-
'父渠道id': 'varchar(50)',
|
3063
|
-
'父渠道名称': 'varchar(50)',
|
3064
|
-
'在投计划数': 'varchar(10)',
|
3065
|
-
'bizCode': 'varchar(50)',
|
3066
|
-
'channelType': 'varchar(50)',
|
3067
|
-
'urlOneBP': 'varchar(255)',
|
3068
|
-
'花费': 'decimal(12, 2)',
|
3069
|
-
'展现量': 'int',
|
3070
|
-
'点击量': 'int',
|
3071
|
-
'加购成本': 'decimal(10, 4)',
|
3072
|
-
'加购率': 'decimal(10, 4)',
|
3073
|
-
'单次点击成本': 'decimal(10, 4)',
|
3074
|
-
'当天引导roi': 'decimal(10, 4)',
|
3075
|
-
'当天引导成交笔数': 'int',
|
3076
|
-
'当天引导成交金额': 'decimal(12, 2)',
|
3077
|
-
'总购物车数': 'int',
|
3078
|
-
'成交笔数': 'int',
|
3079
|
-
'成交转化率': 'decimal(10, 4)',
|
3080
|
-
'成交金额': 'decimal(12, 2)',
|
3081
|
-
'成交金额占比': 'decimal(10, 4)',
|
3082
|
-
'消耗占比': 'decimal(10, 4)',
|
3083
|
-
'渠道策略': 'varchar(255)',
|
3084
|
-
'点击转化率': 'decimal(10, 6)',
|
3085
|
-
'种草': 'varchar(10)',
|
3086
|
-
'笔单价': 'decimal(10, 2)',
|
3087
|
-
'蓄水转化成交笔数': 'int',
|
3088
|
-
'蓄水转化成交金额': 'decimal(12, 2)',
|
3089
|
-
'转化收割': 'varchar(10)',
|
3090
|
-
'更新时间': 'timestamp',
|
3091
|
-
}
|
2741
|
+
set_typ = SET_TYP_DICT[f'{db_name}_{table_name}']
|
3092
2742
|
return df, {
|
3093
2743
|
'db_name': db_name,
|
3094
2744
|
'table_name': table_name,
|
@@ -3148,53 +2798,7 @@ class MysqlDatasQuery:
|
|
3148
2798
|
df['用户年龄'] = df['用户年龄'].apply(lambda x: '~'.join(re.findall(r'^(\d+).*-(\d+)岁$', str(x))[0]) if '岁' in str(x) else x)
|
3149
2799
|
df['消费能力等级'] = df['消费能力等级'].apply(lambda x: f'L{''.join(re.findall(r'(\d)', str(x)))}' if '购买力' in str(x) else x)
|
3150
2800
|
df.rename(columns={'消耗_元': '消耗'}, inplace=True)
|
3151
|
-
set_typ = {
|
3152
|
-
'日期': 'date',
|
3153
|
-
'店铺名称': 'varchar(100)',
|
3154
|
-
'人群id': 'bigint',
|
3155
|
-
'人群名称': 'varchar(255)',
|
3156
|
-
'营销渠道': 'varchar(100)',
|
3157
|
-
'计划基础信息': 'varchar(255)',
|
3158
|
-
'推广单元信息': 'varchar(255)',
|
3159
|
-
'消耗_元': 'decimal(10,2)',
|
3160
|
-
'展现人数': 'int',
|
3161
|
-
'展现量': 'int',
|
3162
|
-
'点击人数': 'int',
|
3163
|
-
'点击量': 'int',
|
3164
|
-
'店铺收藏人数': 'smallint',
|
3165
|
-
'店铺收藏量': 'smallint',
|
3166
|
-
'加购人数': 'smallint',
|
3167
|
-
'加购量': 'smallint',
|
3168
|
-
'宝贝收藏人数': 'smallint',
|
3169
|
-
'宝贝收藏量': 'smallint',
|
3170
|
-
'收藏加购量': 'smallint',
|
3171
|
-
'收藏加购人数': 'smallint',
|
3172
|
-
'拍下人数': 'smallint',
|
3173
|
-
'拍下订单量': 'smallint',
|
3174
|
-
'拍下订单金额_元': 'decimal(10,2)',
|
3175
|
-
'成交人数': 'smallint',
|
3176
|
-
'成交订单量': 'smallint',
|
3177
|
-
'成交订单金额_元': 'decimal(10,2)',
|
3178
|
-
'店铺首购人数': 'smallint',
|
3179
|
-
'店铺复购人数': 'smallint',
|
3180
|
-
'点击率': 'decimal(10,4)',
|
3181
|
-
'uv点击率': 'decimal(10, 4)',
|
3182
|
-
'收藏加购率': 'decimal(10, 4)',
|
3183
|
-
'uv收藏加购率': 'decimal(10, 4)',
|
3184
|
-
'点击转化率': 'decimal(10, 4)',
|
3185
|
-
'uv点击转化率': 'decimal(10, 4)',
|
3186
|
-
'投资回报率': 'decimal(10, 4)',
|
3187
|
-
'千次展现成本_元': 'decimal(10, 2)',
|
3188
|
-
'点击成本_元': 'decimal(10, 2)',
|
3189
|
-
'uv点击成本_元': 'decimal(10, 2)',
|
3190
|
-
'收藏加购成本_元': 'decimal(10, 2)',
|
3191
|
-
'uv收藏加购成本_元': 'decimal(10, 2)',
|
3192
|
-
'更新时间': 'timestamp',
|
3193
|
-
'人群规模': 'int',
|
3194
|
-
'用户年龄': 'varchar(100)',
|
3195
|
-
'消费能力等级': 'varchar(100)',
|
3196
|
-
'用户性别': 'varchar(100)',
|
3197
|
-
}
|
2801
|
+
set_typ = SET_TYP_DICT[f'{db_name}_{table_name}']
|
3198
2802
|
return df, {
|
3199
2803
|
'db_name': db_name,
|
3200
2804
|
'table_name': table_name,
|
@@ -3568,7 +3172,7 @@ class MysqlDatasQuery:
|
|
3568
3172
|
df.replace(to_replace='', value=0, inplace=True)
|
3569
3173
|
set_typ = {
|
3570
3174
|
'日期': 'date',
|
3571
|
-
'店铺名称': 'varchar(
|
3175
|
+
'店铺名称': 'varchar(255)',
|
3572
3176
|
'推广渠道': 'varchar(100)',
|
3573
3177
|
'营销场景': 'varchar(100)',
|
3574
3178
|
'商品id': 'bigint',
|
@@ -3667,21 +3271,7 @@ def date_table():
|
|
3667
3271
|
df = df.reset_index(drop=False)
|
3668
3272
|
df.rename(columns={'index': 'id'}, inplace=True)
|
3669
3273
|
df['id'] = df['id'].apply(lambda x: x + 1)
|
3670
|
-
set_typ =
|
3671
|
-
'日期': 'date',
|
3672
|
-
'年': 'varchar(50)',
|
3673
|
-
'月': 'varchar(50)',
|
3674
|
-
'日': 'int',
|
3675
|
-
'年月': 'varchar(50)',
|
3676
|
-
'月日': 'varchar(50)',
|
3677
|
-
'第n周': 'varchar(50)',
|
3678
|
-
'第n周_new': 'varchar(50)',
|
3679
|
-
'星期': 'varchar(50)',
|
3680
|
-
'weekname': 'varchar(50)',
|
3681
|
-
'索引': 'int',
|
3682
|
-
'月索引': 'int',
|
3683
|
-
}
|
3684
|
-
|
3274
|
+
set_typ = SET_TYP_DICT['聚合数据_日期表']
|
3685
3275
|
return df, {
|
3686
3276
|
'db_name': '聚合数据',
|
3687
3277
|
'table_name': '日期表',
|
@@ -3780,5 +3370,5 @@ if __name__ == '__main__':
|
|
3780
3370
|
pool_size=10,
|
3781
3371
|
)
|
3782
3372
|
sdq = MysqlDatasQuery(download_manager=download_manager)
|
3783
|
-
sdq.months =
|
3784
|
-
sdq.
|
3373
|
+
sdq.months = 1
|
3374
|
+
sdq.shops_concat(db_name='聚合数据', table_name='多店聚合_日报')
|