mdbq 2.3.9__tar.gz → 2.4.1__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.
- {mdbq-2.3.9 → mdbq-2.4.1}/PKG-INFO +1 -1
- {mdbq-2.3.9 → mdbq-2.4.1}/mdbq/aggregation/query_data.py +61 -2
- {mdbq-2.3.9 → mdbq-2.4.1}/mdbq/req_post/req_tb.py +2 -2
- {mdbq-2.3.9 → mdbq-2.4.1}/mdbq.egg-info/PKG-INFO +1 -1
- {mdbq-2.3.9 → mdbq-2.4.1}/setup.py +1 -1
- {mdbq-2.3.9 → mdbq-2.4.1}/README.txt +0 -0
- {mdbq-2.3.9 → mdbq-2.4.1}/mdbq/__init__.py +0 -0
- {mdbq-2.3.9 → mdbq-2.4.1}/mdbq/__version__.py +0 -0
- {mdbq-2.3.9 → mdbq-2.4.1}/mdbq/aggregation/__init__.py +0 -0
- {mdbq-2.3.9 → mdbq-2.4.1}/mdbq/aggregation/aggregation.py +0 -0
- {mdbq-2.3.9 → mdbq-2.4.1}/mdbq/aggregation/df_types.py +0 -0
- {mdbq-2.3.9 → mdbq-2.4.1}/mdbq/aggregation/mysql_types.py +0 -0
- {mdbq-2.3.9 → mdbq-2.4.1}/mdbq/aggregation/optimize_data.py +0 -0
- {mdbq-2.3.9 → mdbq-2.4.1}/mdbq/bdup/__init__.py +0 -0
- {mdbq-2.3.9 → mdbq-2.4.1}/mdbq/bdup/bdup.py +0 -0
- {mdbq-2.3.9 → mdbq-2.4.1}/mdbq/clean/__init__.py +0 -0
- {mdbq-2.3.9 → mdbq-2.4.1}/mdbq/clean/data_clean.py +0 -0
- {mdbq-2.3.9 → mdbq-2.4.1}/mdbq/company/__init__.py +0 -0
- {mdbq-2.3.9 → mdbq-2.4.1}/mdbq/company/copysh.py +0 -0
- {mdbq-2.3.9 → mdbq-2.4.1}/mdbq/company/home_sh.py +0 -0
- {mdbq-2.3.9 → mdbq-2.4.1}/mdbq/config/__init__.py +0 -0
- {mdbq-2.3.9 → mdbq-2.4.1}/mdbq/config/get_myconf.py +0 -0
- {mdbq-2.3.9 → mdbq-2.4.1}/mdbq/config/products.py +0 -0
- {mdbq-2.3.9 → mdbq-2.4.1}/mdbq/config/set_support.py +0 -0
- {mdbq-2.3.9 → mdbq-2.4.1}/mdbq/config/update_conf.py +0 -0
- {mdbq-2.3.9 → mdbq-2.4.1}/mdbq/dataframe/__init__.py +0 -0
- {mdbq-2.3.9 → mdbq-2.4.1}/mdbq/dataframe/converter.py +0 -0
- {mdbq-2.3.9 → mdbq-2.4.1}/mdbq/log/__init__.py +0 -0
- {mdbq-2.3.9 → mdbq-2.4.1}/mdbq/log/mylogger.py +0 -0
- {mdbq-2.3.9 → mdbq-2.4.1}/mdbq/mongo/__init__.py +0 -0
- {mdbq-2.3.9 → mdbq-2.4.1}/mdbq/mongo/mongo.py +0 -0
- {mdbq-2.3.9 → mdbq-2.4.1}/mdbq/mysql/__init__.py +0 -0
- {mdbq-2.3.9 → mdbq-2.4.1}/mdbq/mysql/mysql.py +0 -0
- {mdbq-2.3.9 → mdbq-2.4.1}/mdbq/mysql/s_query.py +0 -0
- {mdbq-2.3.9 → mdbq-2.4.1}/mdbq/mysql/year_month_day.py +0 -0
- {mdbq-2.3.9 → mdbq-2.4.1}/mdbq/other/__init__.py +0 -0
- {mdbq-2.3.9 → mdbq-2.4.1}/mdbq/other/porxy.py +0 -0
- {mdbq-2.3.9 → mdbq-2.4.1}/mdbq/other/pov_city.py +0 -0
- {mdbq-2.3.9 → mdbq-2.4.1}/mdbq/other/sku_picture.py +0 -0
- {mdbq-2.3.9 → mdbq-2.4.1}/mdbq/other/ua_sj.py +0 -0
- {mdbq-2.3.9 → mdbq-2.4.1}/mdbq/pbix/__init__.py +0 -0
- {mdbq-2.3.9 → mdbq-2.4.1}/mdbq/pbix/pbix_refresh.py +0 -0
- {mdbq-2.3.9 → mdbq-2.4.1}/mdbq/pbix/refresh_all.py +0 -0
- {mdbq-2.3.9 → mdbq-2.4.1}/mdbq/pbix/refresh_all_old.py +0 -0
- {mdbq-2.3.9 → mdbq-2.4.1}/mdbq/req_post/__init__.py +0 -0
- {mdbq-2.3.9 → mdbq-2.4.1}/mdbq/spider/__init__.py +0 -0
- {mdbq-2.3.9 → mdbq-2.4.1}/mdbq/spider/aikucun.py +0 -0
- {mdbq-2.3.9 → mdbq-2.4.1}/mdbq.egg-info/SOURCES.txt +0 -0
- {mdbq-2.3.9 → mdbq-2.4.1}/mdbq.egg-info/dependency_links.txt +0 -0
- {mdbq-2.3.9 → mdbq-2.4.1}/mdbq.egg-info/top_level.txt +0 -0
- {mdbq-2.3.9 → mdbq-2.4.1}/setup.cfg +0 -0
@@ -736,6 +736,44 @@ class MysqlDatasQuery:
|
|
736
736
|
)
|
737
737
|
return df
|
738
738
|
|
739
|
+
def dmp_crowd(self):
|
740
|
+
start_date, end_date = self.months_data(num=self.months)
|
741
|
+
projection = {
|
742
|
+
'日期': 1,
|
743
|
+
'人群id': 1,
|
744
|
+
'人群规模': 1,
|
745
|
+
'用户年龄': 1,
|
746
|
+
'消费能力等级': 1,
|
747
|
+
'用户性别': 1,
|
748
|
+
}
|
749
|
+
# projection = {}
|
750
|
+
df_crowd = self.download.data_to_df(
|
751
|
+
db_name='达摩盘2',
|
752
|
+
table_name='我的人群属性',
|
753
|
+
start_date=start_date,
|
754
|
+
end_date=end_date,
|
755
|
+
projection=projection,
|
756
|
+
)
|
757
|
+
df_crowd.sort_values('日期', ascending=True, ignore_index=True, inplace=True)
|
758
|
+
df_crowd.drop_duplicates(subset=['人群id',], keep='last', inplace=True, ignore_index=True)
|
759
|
+
df_crowd.pop('日期')
|
760
|
+
# print(df_crowd)
|
761
|
+
|
762
|
+
projection = {}
|
763
|
+
df_dmp = self.download.data_to_df(
|
764
|
+
db_name='推广数据2',
|
765
|
+
table_name='达摩盘_dmp报表',
|
766
|
+
start_date=start_date,
|
767
|
+
end_date=end_date,
|
768
|
+
projection=projection,
|
769
|
+
)
|
770
|
+
df_dmp.sort_values('日期', ascending=True, ignore_index=True, inplace=True)
|
771
|
+
df_dmp.drop_duplicates(subset=['日期', '人群id', '消耗(元)'], keep='last', inplace=True, ignore_index=True)
|
772
|
+
df = pd.merge(df_dmp, df_crowd, left_on=['人群id'], right_on=['人群id'], how='left')
|
773
|
+
# df.to_csv('/Users/xigua/Downloads/test3.csv', index=False, header=True, encoding='utf-8_sig')
|
774
|
+
return df
|
775
|
+
|
776
|
+
|
739
777
|
|
740
778
|
class GroupBy:
|
741
779
|
"""
|
@@ -881,7 +919,7 @@ class GroupBy:
|
|
881
919
|
'成交gmv',
|
882
920
|
], keep='last', inplace=True, ignore_index=True)
|
883
921
|
return df
|
884
|
-
elif '人群报表' in table_name:
|
922
|
+
elif '天猫_人群报表' in table_name and '达摩盘' not in table_name:
|
885
923
|
df.rename(columns={
|
886
924
|
'场景名字': '营销场景',
|
887
925
|
'主体id': '商品id',
|
@@ -1012,11 +1050,16 @@ class GroupBy:
|
|
1012
1050
|
df_fl = pd.read_excel(dir_file, sheet_name='关键词分类', header=0)
|
1013
1051
|
df_fl.rename(columns={'分类1': '词分类'}, inplace=True)
|
1014
1052
|
df_fl = df_fl[['关键词', '词分类']]
|
1053
|
+
# 合并并获取词分类信息
|
1015
1054
|
df = pd.merge(df, df_fl, left_on=['词名字/词包名字'], right_on=['关键词'], how='left')
|
1016
1055
|
df.pop('关键词')
|
1017
1056
|
df['词分类'].fillna('', inplace=True)
|
1018
1057
|
if '词分类' in df.columns.tolist():
|
1019
|
-
|
1058
|
+
# 这行决定了,从文件中读取的词分类信息优先级高于 ret_keyword 函数的词分类
|
1059
|
+
df['词分类'] = df.apply(
|
1060
|
+
lambda x: self.ret_keyword(keyword=str(x['词名字/词包名字']), as_file=False) if x['词分类'] == ''
|
1061
|
+
else x['词分类'], axis=1
|
1062
|
+
)
|
1020
1063
|
else:
|
1021
1064
|
df['词分类'] = df['词名字/词包名字'].apply(lambda x: self.ret_keyword(keyword=str(x), as_file=False))
|
1022
1065
|
# df.to_csv('/Users/xigua/Downloads/test.csv', index=False, header=True, encoding='utf-8_sig')
|
@@ -1403,11 +1446,15 @@ class GroupBy:
|
|
1403
1446
|
df.sort_values(['日期', '店铺', '花费'], ascending=[False, False, False], ignore_index=True, inplace=True)
|
1404
1447
|
# df.to_csv('/Users/xigua/Downloads/test.csv', encoding='utf-8_sig', index=False, header=True)
|
1405
1448
|
return df
|
1449
|
+
elif '达摩盘_人群报表' in table_name:
|
1450
|
+
return df
|
1451
|
+
|
1406
1452
|
else:
|
1407
1453
|
print(f'<{table_name}>: Groupby 类尚未配置,数据为空')
|
1408
1454
|
return pd.DataFrame({})
|
1409
1455
|
|
1410
1456
|
def ret_keyword(self, keyword, as_file=False):
|
1457
|
+
""" 推广关键词报表,关键词分类, """
|
1411
1458
|
datas = [
|
1412
1459
|
{
|
1413
1460
|
'类别': '品牌词',
|
@@ -1444,6 +1491,12 @@ class GroupBy:
|
|
1444
1491
|
'智选',
|
1445
1492
|
]
|
1446
1493
|
},
|
1494
|
+
{
|
1495
|
+
'类别': '智能',
|
1496
|
+
'值': [
|
1497
|
+
'智能',
|
1498
|
+
]
|
1499
|
+
},
|
1447
1500
|
{
|
1448
1501
|
'类别': '年份',
|
1449
1502
|
'值': [
|
@@ -1942,6 +1995,12 @@ def data_aggregation(service_databases=[{}], months=1):
|
|
1942
1995
|
'唯一主键': [],
|
1943
1996
|
'数据主体': sdq.aikucun_bd_spu(),
|
1944
1997
|
},
|
1998
|
+
{
|
1999
|
+
'数据库名': '聚合数据',
|
2000
|
+
'集合名': '达摩盘_人群报表',
|
2001
|
+
'唯一主键': [],
|
2002
|
+
'数据主体': sdq.dmp_crowd(),
|
2003
|
+
},
|
1945
2004
|
]
|
1946
2005
|
for items in data_dict: # 遍历返回结果
|
1947
2006
|
db_name, table_name, unique_key_list, df = items['数据库名'], items['集合名'], items['唯一主键'], items['数据主体']
|
@@ -574,8 +574,8 @@ def company_run(service_databases=[]):
|
|
574
574
|
r.is_json_file = False
|
575
575
|
|
576
576
|
my_data_list = [
|
577
|
-
r.ys_ll_data(), # 双 11预售实时流量分析
|
578
|
-
r.qxg_hx_data(), # 抢先购 预热期核心指标
|
577
|
+
# r.ys_ll_data(), # 双 11预售实时流量分析
|
578
|
+
# r.qxg_hx_data(), # 抢先购 预热期核心指标
|
579
579
|
r.qxg_ll() # 抢先购 流量来源
|
580
580
|
]
|
581
581
|
|
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
|
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
|