Commit d7d077d7 authored by 张彦钊's avatar 张彦钊

change transform

parent d9a211b7
...@@ -52,7 +52,7 @@ def get_data(): ...@@ -52,7 +52,7 @@ def get_data():
df["y"] = df["stat_date"].str.cat([df["device_id"].values.tolist(),df["ucity_id"].values.tolist(), df["cid_id"].values.tolist(), df["y"] = df["stat_date"].str.cat([df["device_id"].values.tolist(),df["ucity_id"].values.tolist(), df["cid_id"].values.tolist(),
df["y"].values.tolist(),df["z"].values.tolist()], sep=",") df["y"].values.tolist(),df["z"].values.tolist()], sep=",")
df = df.drop("z", axis=1) df = df.drop("z", axis=1)
print(df.head()) print(df.head(2))
print("shape") print("shape")
print(df.shape) print(df.shape)
df = pd.merge(df,get_statistics(),how='left').fillna(0) df = pd.merge(df,get_statistics(),how='left').fillna(0)
...@@ -67,7 +67,7 @@ def get_data(): ...@@ -67,7 +67,7 @@ def get_data():
def transform(df,validate_date): def transform(df,validate_date):
model = multiFFMFormatPandas() model = multiFFMFormatPandas()
df = model.fit_transform(df, y="y", n=80000, processes=18) df = model.fit_transform(df, y="y", n=100000, processes=18)
df = pd.DataFrame(df) df = pd.DataFrame(df)
df["stat_date"] = df[0].apply(lambda x: x.split(",")[0]) df["stat_date"] = df[0].apply(lambda x: x.split(",")[0])
df["device_id"] = df[0].apply(lambda x: x.split(",")[1]) df["device_id"] = df[0].apply(lambda x: x.split(",")[1])
...@@ -107,14 +107,20 @@ def transform(df,validate_date): ...@@ -107,14 +107,20 @@ def transform(df,validate_date):
def get_statistics(): def get_statistics():
db = pymysql.connect(host='10.66.157.22', port=4000, user='root', passwd='3SYz54LS9#^9sBvC', db='eagle') db = pymysql.connect(host='10.66.157.22', port=4000, user='root', passwd='3SYz54LS9#^9sBvC', db='eagle')
sql = "select device_id,device_type,total,精选,直播,鼻部,眼部,微整,牙齿,轮廓,美肤抗衰," \ sql = "select device_id,device_type,total,精选,直播,鼻部,眼部,微整,牙齿,轮廓,美肤抗衰," \
"吸脂,脂肪填充,隆胸,私密,毛发管理,公立,韩国 from home_tab_click" "吸脂,脂肪填充,隆胸,私密,毛发管理,公立,韩国 from home_tab_click limit 200"
df = con_sql(db, sql).drop_duplicates() df = con_sql(db, sql).drop_duplicates()
df = df.rename(columns={0:"device_id",1:"os",2:"total"}) df = df.rename(columns={0:"device_id",1:"os",2:"total"})
for i in df.columns.difference(["device_id", "os","total"]): for i in df.columns.difference(["device_id", "os","total"]):
df[i] = df[i]/df["total"] df[i] = df[i]/df["total"]
df = df.drop("total", axis=1) df = df.drop("total", axis=1)
df["y"] = 1
model = multiFFMFormatPandas()
df = model.fit_transform(df, y="y", n=100000, processes=18)
df = pd.DataFrame(df)
print(df.head())
return df return df
class multiFFMFormatPandas: class multiFFMFormatPandas:
def __init__(self): def __init__(self):
self.field_index_ = None self.field_index_ = None
...@@ -222,5 +228,6 @@ class multiFFMFormatPandas: ...@@ -222,5 +228,6 @@ class multiFFMFormatPandas:
if __name__ == "__main__": if __name__ == "__main__":
path = "/home/gmuser/ffm/" path = "/home/gmuser/ffm/"
get_data() # get_data()
get_statistics()
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment