Commit bee93934 authored by 赵杰's avatar 赵杰

performance 没有置空

parent 482af6ab
...@@ -341,29 +341,55 @@ class UserCustomerResultAdaptor(UserCustomerDataAdaptor): ...@@ -341,29 +341,55 @@ class UserCustomerResultAdaptor(UserCustomerDataAdaptor):
for index, row in p_order_df.iterrows(): for index, row in p_order_df.iterrows():
cur_fund_id = str(row["fund_id"]) cur_fund_id = str(row["fund_id"])
cur_fund_performance = self.all_fund_performance[cur_fund_id] cur_fund_performance = self.all_fund_performance[cur_fund_id]
cur_fund_info_series = cur_fund_performance.iloc[-1] if len(cur_fund_performance) <=0:
# 基金净值数据 fund_basic_info = {"fund_name": row["fund_name"], "confirm_nav": round(row["nav"], 4)}
fund_basic_info = {"fund_name": row["fund_name"], "confirm_nav": round(row["nav"],4)} fund_basic_info["cur_nav"] = round(float(self.fund_nav_total[cur_fund_id].dropna().values[-1]), 4)
fund_basic_info["cur_nav"] = round(float(self.fund_nav_total[cur_fund_id].dropna().values[-1]), 4) fund_basic_info["cur_cnav"] = round(float(self.fund_cnav_total[cur_fund_id].dropna().values[-1]), 4)
fund_basic_info["cur_cnav"] = round(float(self.fund_cnav_total[cur_fund_id].dropna().values[-1]), 4) fund_basic_info["ret_1w"] = "-" # 上周
fund_basic_info["ret_1w"] = round(cur_fund_info_series["ret_1w"]*100, 2) if cur_fund_info_series["ret_1w"] is not None else "-" # 上周 fund_basic_info["ret_cum_1m"] = "-" # 最近一个月
fund_basic_info["ret_cum_1m"] = round(cur_fund_info_series["ret_cum_1m"]*100, 2) if cur_fund_info_series["ret_cum_1m"] is not None else "-" # 最近一个月 fund_basic_info["ret_cum_6m"] = "-" # 最近半年
fund_basic_info["ret_cum_6m"] = round(cur_fund_info_series["ret_cum_6m"]*100, 2) if cur_fund_info_series["ret_cum_6m"] is not None else "-" # 最近半年 fund_basic_info["ret_cum_1y"] = "-" # 最近一年
fund_basic_info["ret_cum_1y"] = round(cur_fund_info_series["ret_cum_1y"]*100, 2) if cur_fund_info_series["ret_cum_1y"] is not None else "-" # 最近一年 fund_basic_info["ret_cum_ytd"] = "-" # 今年以来
fund_basic_info["ret_cum_ytd"] = round(cur_fund_info_series["ret_cum_ytd"]*100, 2) if cur_fund_info_series["ret_cum_ytd"] is not None else "-" # 今年以来 fund_basic_info["ret_cum_incep"] = "-" # 成立以来
fund_basic_info["ret_cum_incep"] = round(cur_fund_info_series["ret_cum_incep"]*100, 2) if cur_fund_info_series["ret_cum_incep"] is not None else "-" # 成立以来
# 申购以来 # 申购以来
confirm_date = pd.to_datetime(row["confirm_share_date"]) confirm_date = pd.to_datetime(row["confirm_share_date"])
confirm_cnav = float(p_result_cnav_data.loc[confirm_date, cur_fund_id]) confirm_cnav = float(p_result_cnav_data.loc[confirm_date, cur_fund_id])
fund_basic_info["ret_after_confirm"] = round((fund_basic_info["cur_cnav"] - confirm_cnav)/confirm_cnav*100, 2) fund_basic_info["ret_after_confirm"] = round(
# 分红 (fund_basic_info["cur_cnav"] - confirm_cnav) / confirm_cnav * 100, 2)
distribution_df = self.all_fund_distribution[cur_fund_id] # 分红
if distribution_df.empty: distribution_df = self.all_fund_distribution[cur_fund_id]
fund_basic_info["distribution"] = "-" if distribution_df.empty:
fund_basic_info["distribution"] = "-"
else:
distribution_df["price_date"] = pd.to_datetime(distribution_df["price_date"])
distribution = float(
distribution_df[distribution_df["price_date"] > confirm_date]["distribution"].sum())
fund_basic_info["distribution"] = round(distribution, 4) if distribution != 0 else "-"
else: else:
distribution_df["price_date"] = pd.to_datetime(distribution_df["price_date"]) cur_fund_info_series = cur_fund_performance.iloc[-1]
distribution = float(distribution_df[distribution_df["price_date"] > confirm_date]["distribution"].sum()) # 基金净值数据
fund_basic_info["distribution"] = round(distribution, 4) if distribution != 0 else "-" fund_basic_info = {"fund_name": row["fund_name"], "confirm_nav": round(row["nav"],4)}
fund_basic_info["cur_nav"] = round(float(self.fund_nav_total[cur_fund_id].dropna().values[-1]), 4)
fund_basic_info["cur_cnav"] = round(float(self.fund_cnav_total[cur_fund_id].dropna().values[-1]), 4)
fund_basic_info["ret_1w"] = round(cur_fund_info_series["ret_1w"]*100, 2) if cur_fund_info_series["ret_1w"] is not None else "-" # 上周
fund_basic_info["ret_cum_1m"] = round(cur_fund_info_series["ret_cum_1m"]*100, 2) if cur_fund_info_series["ret_cum_1m"] is not None else "-" # 最近一个月
fund_basic_info["ret_cum_6m"] = round(cur_fund_info_series["ret_cum_6m"]*100, 2) if cur_fund_info_series["ret_cum_6m"] is not None else "-" # 最近半年
fund_basic_info["ret_cum_1y"] = round(cur_fund_info_series["ret_cum_1y"]*100, 2) if cur_fund_info_series["ret_cum_1y"] is not None else "-" # 最近一年
fund_basic_info["ret_cum_ytd"] = round(cur_fund_info_series["ret_cum_ytd"]*100, 2) if cur_fund_info_series["ret_cum_ytd"] is not None else "-" # 今年以来
fund_basic_info["ret_cum_incep"] = round(cur_fund_info_series["ret_cum_incep"]*100, 2) if cur_fund_info_series["ret_cum_incep"] is not None else "-" # 成立以来
# 申购以来
confirm_date = pd.to_datetime(row["confirm_share_date"])
confirm_cnav = float(p_result_cnav_data.loc[confirm_date, cur_fund_id])
fund_basic_info["ret_after_confirm"] = round((fund_basic_info["cur_cnav"] - confirm_cnav)/confirm_cnav*100, 2)
# 分红
distribution_df = self.all_fund_distribution[cur_fund_id]
if distribution_df.empty:
fund_basic_info["distribution"] = "-"
else:
distribution_df["price_date"] = pd.to_datetime(distribution_df["price_date"])
distribution = float(distribution_df[distribution_df["price_date"] > confirm_date]["distribution"].sum())
fund_basic_info["distribution"] = round(distribution, 4) if distribution != 0 else "-"
group_fund_basic_info.append(fund_basic_info) group_fund_basic_info.append(fund_basic_info)
......
...@@ -248,7 +248,7 @@ class DataIntegrate: ...@@ -248,7 +248,7 @@ class DataIntegrate:
'team': template_folder + '/v2/img/default-user.png', 'team': template_folder + '/v2/img/default-user.png',
# 全局数据 # 全局数据
'customer_name': self.customer_name, 'customer_name': self.customer_name,
'year_month': self.user_customer.month_start_date.strftime("%Y{}%m{}").format("年", "月"), 'year_month': self.user_customer.month_start_date.strftime("%Y-%m"),
'month': self.user_customer.month_start_date.strftime("%m"), 'month': self.user_customer.month_start_date.strftime("%m"),
'start_date': self.user_customer.start_date.strftime("%Y-%m-%d"), 'start_date': self.user_customer.start_date.strftime("%Y-%m-%d"),
'latest_worth_day': self.user_customer.last_nav_date, 'latest_worth_day': self.user_customer.last_nav_date,
...@@ -326,6 +326,6 @@ class DataIntegrate: ...@@ -326,6 +326,6 @@ class DataIntegrate:
if __name__ == '__main__': if __name__ == '__main__':
start = time.time() start = time.time()
dt = DataIntegrate(ifa_id='USER_INFO15917853924996', customer_id='6741679287251775488') dt = DataIntegrate(ifa_id='USER_INFO15916072577875', customer_id='6716613804966817792')
dt.render_data() dt.render_data()
print('耗时{}秒'.format(round(time.time()-start, 2))) print('耗时{}秒'.format(round(time.time()-start, 2)))
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