为了账号安全,请及时绑定邮箱和手机立即绑定

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

标签:
Python
  1. #!/usr/bin/python

  2. # coding=utf-8

  3. '''

  4.    

  5. @author: lenovo

  6. @software: 3.6 PyCharm

  7. @file: 8W信贷数据处理.py

  8. @time: 20170531

  9. @function:Credit data processing and preliminary analysis

  10.          信贷数据处理与初步分析

  11. @edition :1.0

  12. '''

  13. #导入模块

  14. from __future__ import division, print_function

  15. import os

  16. import pandas as pd

  17. import zipfile

  18. #设置文件位置文件夹名(本文件为zip)

  19. dataset_path = 'C:\\Users\lenovo\Desktop...\dataset'

  20. #设置文件名注意后缀

  21. zip_file_name = 'loan.zip'

  22. #此位置CSV

  23. csv_file_name = './loan.csv'

  24. def run_main():

  25. '''

  26.    主函数

  27.    '''

  28. zip_file_path=os.path.join(dataset_path,zip_file_name)

  29. csv_file_path=os.path.join(dataset_path,csv_file_name)

  30. #如果不存在CSV文件,解压zip文件

  31. if not os.path.exists(csv_file_path):

  32. with zipfile.ZipFile(zip_file_path) as zf:

  33. zf.extractall(dataset_path)

  34. # 读取数据

  35. raw_data = pd.read_csv(csv_file_path,engine='python')

  36. #查看数据集

  37. print('\n数据预览:',raw_data.head())

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

  39. print(raw_data.describe())

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

  41. print(raw_data.info())

  42. #选择列

  43. used_cols = ['loan_amnt', 'term', 'int_rate', 'grade', 'issue_d', 'addr_state']

  44. used_data = raw_data[used_cols]

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

  46. # #Q:按月份统计借贷金额

  47. print('\n时间序列转换ING')

  48. #原来为dec_12 改为 datetime

  49. used_data['issue_d2']=pd.to_datetime(used_data['issue_d'])

  50. print('\n数据预览')

  51. print(used_data.head())

  52. print('\数据基本信息',used_data.info)

  53. #分组求和

  54. data_group_by_date=used_data.groupby(['issue_d2']).sum()

  55. #给新列命名

  56. data_group_by_date.reset_index(inplace=True)

  57. #apply(直接跟函数M)

  58. data_group_by_date['issue_month']=data_group_by_date['issue_d2'].apply(lambda x:x.to_period('M'))

  59. load_amout_group_by_month=data_group_by_date.groupby('issue_month')['loan_amnt'].sum()

  60. #结果转换为dataframe

  61. load_amout_group_by_month_df=pd.DataFrame(load_amout_group_by_month).reset_index()

  62. print('\n按月统计借贷总额预览:',load_amout_group_by_month_df.head())

  63. #保存结果,输出结果为load_amout_group_by_month无df

  64. load_amout_group_by_month_df.to_csv('C:/Users/lenovo/Desktop/.../output/load_amouta_by_month.csv',index=False)

  65. #Q:按州统计借贷金额`

  66. data_group_by_state=used_data.groupby(['addr_state'])['loan_amnt'].sum()

  67. #结果转DATAFRAME

  68. load_amout_group_by_state_df=pd.DataFrame(data_group_by_state).reset_index()

  69. print('/n按州统计预览',data_group_by_state.head())

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

  71. #Q:借贷评级、期限和利率关系

  72. #根据grade,term分组,int_rate求平均

  73. data_group_by_grade_term=used_data.groupby(['grade','term'])['int_rate'].mean()

  74. data_group_by_grade_term_df=pd.DataFrame(data_group_by_grade_term).reset_index()

  75. print('/n借贷评级、期限和利率关系预览:',data_group_by_grade_term_df.head())

  76. data_group_by_grade_term_df.to_csv('C:/Users/lenovo/Desktop/...output/intrate_by_grade_term.scv',index=False)

  77. #if exists CSV文件删除,释放空间

  78. if os.path.exists(csv_file_path):

  79. os.remove(csv_file_path)

  80. '''

  81.    if  used_data['']=  :

  82.        return

  83.    if  used_data['']=    :

  84.        return

  85.    else:

  86.        return

  87.    print(raw_data.head())

  88. '''

  89. if __name__ =='__main__':

  90. run_main()


点击查看更多内容
TA 点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
  • 推荐
  • 评论
  • 收藏
  • 共同学习,写下你的评论
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消