Python信贷数据处理与初步分析(ZIP解压)

#!/usr/bin/python
# coding=utf-8
'''
     
@author: lenovo
@software: 3.6 PyCharm
@file: 8W信贷数据处理.py
@time: 20170531
@function:Credit data processing and preliminary analysis
          信贷数据处理与初步分析
@edition :1.0
'''
#导入模块
from __future__ import division, print_function
import os
import pandas as pd
import zipfile

#设置文件位置文件夹名(本文件为zip)
dataset_path = 'C:\\Users\lenovo\Desktop...\dataset'
#设置文件名注意后缀
zip_file_name = 'loan.zip'
#此位置CSV
csv_file_name = './loan.csv'

def run_main():
    '''
    主函数

    '''
    zip_file_path=os.path.join(dataset_path,zip_file_name)
    csv_file_path=os.path.join(dataset_path,csv_file_name)
#如果不存在CSV文件,解压zip文件
    if not os.path.exists(csv_file_path):
          with zipfile.ZipFile(zip_file_path) as zf:
              zf.extractall(dataset_path)

    # 读取数据
    raw_data = pd.read_csv(csv_file_path,engine='python')
    #查看数据集
    print('\n数据预览:',raw_data.head())

    print(' \n 数据描述: ')
    print(raw_data.describe())

    print('\n数据集基本信息: ')
    print(raw_data.info())

    #选择列
    used_cols = ['loan_amnt', 'term', 'int_rate', 'grade', 'issue_d', 'addr_state']
    used_data = raw_data[used_cols]

    print('\n数据预览',used_data.head())

    # #Q:按月份统计借贷金额
    print('\n时间序列转换ING')
    #原来为dec_12 改为 datetime
    used_data['issue_d2']=pd.to_datetime(used_data['issue_d'])
    print('\n数据预览')
    print(used_data.head())
    print('\数据基本信息',used_data.info)
    #分组求和
    data_group_by_date=used_data.groupby(['issue_d2']).sum()
    #给新列命名
    data_group_by_date.reset_index(inplace=True)
    #apply(直接跟函数M)
    data_group_by_date['issue_month']=data_group_by_date['issue_d2'].apply(lambda x:x.to_period('M'))

    load_amout_group_by_month=data_group_by_date.groupby('issue_month')['loan_amnt'].sum()
    #结果转换为dataframe
    load_amout_group_by_month_df=pd.DataFrame(load_amout_group_by_month).reset_index()
    print('\n按月统计借贷总额预览:',load_amout_group_by_month_df.head())
    #保存结果,输出结果为load_amout_group_by_month无df
    load_amout_group_by_month_df.to_csv('C:/Users/lenovo/Desktop/.../output/load_amouta_by_month.csv',index=False)

    #Q:按州统计借贷金额`
    data_group_by_state=used_data.groupby(['addr_state'])['loan_amnt'].sum()
    #结果转DATAFRAME
    load_amout_group_by_state_df=pd.DataFrame(data_group_by_state).reset_index()
    print('/n按州统计预览',data_group_by_state.head())



    load_amout_group_by_state_df.to_csv('C:/Users/lenovo/Desktop/...output/load_amout_by_state.csv',index=False)

    #Q:借贷评级、期限和利率关系
    #根据grade,term分组,int_rate求平均
    data_group_by_grade_term=used_data.groupby(['grade','term'])['int_rate'].mean()
    data_group_by_grade_term_df=pd.DataFrame(data_group_by_grade_term).reset_index()

    print('/n借贷评级、期限和利率关系预览:',data_group_by_grade_term_df.head())
    data_group_by_grade_term_df.to_csv('C:/Users/lenovo/Desktop/...output/intrate_by_grade_term.scv',index=False)
    #if exists CSV文件删除,释放空间
    if os.path.exists(csv_file_path):
        os.remove(csv_file_path)
'''
    if  used_data['']=  :
        return
    if  used_data['']=    :
        return
    else:
        return
    print(raw_data.head())
'''
if __name__ =='__main__':
    run_main()

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏PPV课数据科学社区

【学习】使用hadoop进行大规模数据的全局排序

1. Hellow hadoop~~! Hadoop(某人儿子的一只虚拟大象的名字)是一个复杂到极致,又简单到极致的东西。 说它复杂,是因为一个hadoop...

2993
来自专栏人工智能LeadAI

PyTorch实现自由的数据读取

很多前人曾说过,深度学习好比炼丹,框架就是丹炉,网络结构及算法就是单方,而数据集则是原材料,为了能够炼好丹,首先需要一个使用称手的丹炉,同时也要有好的单方和原材...

6447
来自专栏天天P图攻城狮

OpenGL shader性能优化策略(一):减少分支语句

一、优化策略:减少使用分支语句 在编写OpenGL shader时,一定要注意减少使用if或for语句,因为这些语句引入分支、会大大降低shader的性能,...

6122
来自专栏Spark学习技巧

干货:基于Spark Mllib的SparkNLP库。

引言 这是来自John Snow Labs工程团队的社区博客和工作,解释了他们对开源Apache Spark自然语言处理(NLP)库的贡献。 Apache Sp...

2678
来自专栏木子昭的博客

<算法>蛇形矩阵求解

? 蛇形矩阵 右下,下左,左上,上右,循环往复~ 解题思路: 在单步前进过程中, x与y, 只能有一个发生变化 每次转向, x与y会发生...

3056
来自专栏CreateAMind

Deep Learning Book 中文第二十章 深度生成模型

变分自动编码器方法是优雅的,理论上令人愉快的,并且易于实现。它也获得了 出色的结果,是生成式建模中的最先进方法之一

851
来自专栏数说工作室

换个姿势学量化!|【量化小讲堂】使用python计算各类移动平均线

作者:邢不行 原文链接: http://bbs.pinggu.org/thread-3631776-1-1.html (本文已获作者授权转载,如需转载请与原作者...

45111
来自专栏大数据文摘

干货 | 男朋友老是说自己R语言很6,快来用这40道题目检测他

2034
来自专栏CSDN技术头条

使用hadoop进行大规模数据的全局排序

1. Hellow hadoop~~! Hadoop(某人儿子的一只虚拟大象的名字)是一个复杂到极致,又简单到极致的东西。 说它复杂,是因为一个hadoop...

3375
来自专栏Linyb极客之路

浅谈黑盒测试和白盒测试

  从图中可以直接看出来,黑盒测试就当整个程序是个黑盒子,我们看不到它里面做了些什么事情,只能通过输入输出看是否能得到我们所需的来测试。而白盒测试可以当盒子是透...

2291

扫码关注云+社区

领取腾讯云代金券