ITPub博客

首页 > IT职业 > IT职场 > Python信贷数据处理与初步分析(ZIP解压)

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

IT职场 作者:hunter_tols 时间:2021-09-09 09:31:02 0 删除 编辑
  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:\UserslenovoDesktop...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()


来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/4604/viewspace-2804220/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2019-08-08

  • 博文量
    87
  • 访问量
    615