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.
mdbq/aggregation/query_data.py
CHANGED
@@ -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
|
-
|
1017
|
-
|
1018
|
-
|
1019
|
-
|
1020
|
-
|
1021
|
-
|
1022
|
-
|
1023
|
-
|
1024
|
-
|
1025
|
-
|
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
|
+
)
|
@@ -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=
|
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.
|
35
|
-
mdbq-3.7.
|
36
|
-
mdbq-3.7.
|
37
|
-
mdbq-3.7.
|
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
|
File without changes
|