资金流入流出预测-数据分析与探索

数据分析与探索

1. 背景

根据余额宝2013年7月-2014年8月用户的申购赎回数据信息预测未来每日的资金流入流出情况

2.数据的导入

  1. 导入各种数据科学及可视化库
#读取数据
import pandas as pd
import numpy as np
import datetime,os
import seaborn as snsx
import matplotlib.pyplot as plt 
  1. 读取数据,并添加时间信息,统计每天申购总量和赎回总量
#读取数据
data_balance = pd.read_csv("./Data/user_balance_table.csv")
bank = pd.read_csv(r"./Data/mfd_bank_shibor.csv")
share = pd.read_csv(r"./Data/mfd_day_share_interest.csv")
users = pd.read_csv(r"./Data/user_profile_table.csv")
#给用户申购赎回数据表添加时间信息
data_balance["date"] = pd.to_datetime(data_balance["report_date"],format="%Y%m%d")#日期/年月日
data_balance["day"] = data_balance["date"].dt.day
data_balance["month"] = data_balance["date"].dt.month
data_balance["year"] = data_balance["date"].dt.year
data_balance["week"] = data_balance["date"].dt.week
data_balance["weekday"] = data_balance["date"].dt.weekday

在这里插入图片描述

#统计每天申购总量和赎回总量
total_balance = data_balance.groupby("date",as_index=False)["total_purchase_amt","total_redeem_amt"].sum()

在这里插入图片描述

3. 绘制时序图

绘制各个时间段的申购总量和赎回总量的时序图观察数据特点

  • 2013年8月-2014年8月
#绘制申购总量及赎回总量的时序图观察数据特点
fig = plt.figure(figsize=(20,6))
plt.plot(total_balance["date"],total_balance["total_purchase_amt"],label="purchase")
plt.plot(total_balance["date"],total_balance["total_redeem_amt"],label="redeem")
plt.title("The time series of total amount of purchase and redeem")
plt.legend(loc="best")
plt.xlabel("Time")
plt.ylabel("label")
plt.show()

在这里插入图片描述

  • 2014年4月份以后
    在这里插入图片描述
    观察数据可以看出,大体上以星期为周期变化
  • 2014年4月以后各个月的变化
    在这里插入图片描述
    在这里插入图片描述
    观察可得:
    1. 每月的月初购买大于赎回,每月月末赎回大于购买
    2. 每月有4个波峰4个波谷
    3. 申购与赎回看起来有关联

4.分析一周内申购与赎回的总量差异

4.1分布情况

  1. 绘制密度分布图
#绘制2014年4月份以后一周内每天数据于整体数据的分布图
fig = plt.figure(figsize=(10,10))
scatter_para = {
   "marker":".","s":3,"alpha":0.3}
line_kws = {
   "color":"k"}

plt.subplot(2,2,1)
plt.title("The distribution of total purchase")
sns.violinplot(x="weekday",y="total_purchase_amt",data=total_balance_later_month4,scatter_kws=scatter_para,line_kws=line_kws)

plt.subplot(2,2,2)
plt.title("The distribution of total purchase")
sns.distplot(total_balance_later_month4["total_purchase_amt"].dropna())

plt.subplot(2,2,3)
plt.title("The distribution of total redeem")
sns.violinplot(x="weekday",y="total_redeem_amt",data=total_balance_later_month4,scatter_kws=scatter_para,line_kws=line_kws)

plt.subplot(2,2,4)
plt.title("The distribution of total redeem")
sns.distplot(total_balance_later_month4["total_redeem_amt"].dropna())

在这里插入图片描述
2. 求中位数后绘制柱状图

#求中位数后绘制柱状图
#对数据按照星期聚合取均值
week_data = total_balance_later_month4[["weekday","total_purchase_amt","total_redeem_amt"]].groupby("weekday",as_index=False).median()
plt.figure(figsize&#
  • 3
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值