python使用pandas进行数据分析实例

问题

https://www.kaggle.com/wendykan/lending-club-loan-data
数据集包含2007-2015年间的借贷数据,包含当前借贷状态(Current, Late, Fully Paid,等)以及最新的付账信息。
额外的信息包括:信用评分、金融咨询次数、住址邮政编码、所在州等。
该数据集包括约890,000条记录,75列数据。

  1. 查看不同借贷状态的数据量
  2. 按月份统计借贷金额总量
  3. 按地区(州)统计借贷金额总量
  4. 借贷评级、期限和利率(默认实际利率)的关系分析

过程

首先导入模块

1
2
import pandas as pd
from matplotlib import pyplot as plt

使用pandas的read_csv读取csv文件

1
df = pd.read_csv('loan.csv', low_memory = False)

查看不同借贷状态的数据量

pandas 的value_counts()函数可以对Series里面的每个值进行计数并且排序。返回series。

1
2
3
4
def get_loan_status(df):
loan_status = df['loan_status'].value_counts()
print(loan_status)
return loan_status

按月份统计贷款总量

首先把日期列中的月份提取,再按月份对贷款量分组,最后求和,返回series。
to_datetime用于获取指定的日期时间

1
2
3
4
5
6
def get_total_loan_by_month(df):
df['issue_d'] = pd.to_datetime(df['issue_d']).dt.month
month_group = df['loan_amnt'].groupby(df['issue_d'])
total_loan_by_month = month_group.sum()
print(total_loan_by_month)
return total_loan_by_month

按地区(州)统计借贷金额总量

把数据按地区对贷款量分组,再求和,返回series。
groupby是非常高效的分组h函数。

1
2
3
4
5
def get_total_loan_by_state(df):
addr_state_group = df['loan_amnt'].groupby(df['addr_state'])
total_loan_by_state = addr_state_group.sum()
print(total_loan_by_state)
return total_loan_by_state

借贷评级、期限和利率(默认实际利率)的关系分析

评级为x轴,利率为y轴,绘制散点图,期限为点的颜色。

1
2
3
4
5
6
7
8
9
10
11
12
def analysis(df):
term = df['term'].tolist()
int_rate = df['int_rate'].tolist()
grade = df['grade'].tolist()
colors = []
for item in term:
colors.append(int(item[:2]))
plt.scatter(grade, int_rate, c = colors, alpha = 0.5)
plt.show()
print(grade)
print(term)
print(int_rate)

绘制散点图效果如下:
散点图

项目地址

loan-data-analysis

坚持原创技术分享,您的支持将鼓励我继续创作!
0%