编程语言
首页 > 编程语言> > python数据分析 Lending Club贷款数据

python数据分析 Lending Club贷款数据

作者:互联网

目录

  1. sample() 随机抽样函数
  2. 选取指定数据
  3. merge数据连接融合
  4. join数据连接融合
  5. 对指定属性排序
  6. 删除某列并对缺失值进行处理
  7. strip去除%
  8. 使用to_numeric将字符串转化为数值型
  9. 使用cut与qcut将某变量离散化 分割
  10. 使用replace与map对变量进行值替换
  11. get_dummies进行哑变量处理

一.sample() 随机抽样函数

loan.sample(n=3,axis=1,random_state=1,replace=True)
#n=3 随即查看3列(默认为行)
#axis=1可实现列采样
#random_state有时,我们希望重复调用某次采样的结果,我们可以设定random_state参数为同一个数来实现。
#replace=True又放回抽样(默认为不放回)
loan.sample(frac=0.01)
#抽取样本中的0.01%

二.选取指定数据

test_user = user.loc[[1,3,5,7,8]]
test_user

test_loan = loan[loan.user.isin([2,3,4,5,6,7])]
test_loan```

在这里插入图片描述
在这里插入图片描述
三.merge数据连接融合

left.merge(right, how='inner', on=None, left_on=None, right_on=None, left_index=False, right_index=False, sort=False, suffixes=('_x', '_y'), indicator=False)
#inner这种方式下,只有所选定列在左表与右表能匹配的行会被保留。
test_user.merge(test_loan,how="inner",left_on="user_id",right_on="user")

在这里插入图片描述

#左连接(left)。这种方式下,左表所有行都被保留,不能匹配的部分用缺失值填充。(结果如下图)
test_user.merge(test_loan,how="left",left_on="user_id",right_on="user")
#右连接(right)。这种方式下,右表所有行都被保留,不能匹配的部分用缺失值填充。
test_user.merge(test_loan,how="right",left_on="user_id",right_on="user")

在这里插入图片描述

#外连接(outer)。这种方式下,左表和右表所有行都会被保留,不能匹配的部分用缺失值填充。
test_user.merge(test_loan,how="outer",left_on="user_id",right_on="user")

在这里插入图片描述

test_loan.merge(test_loan,on="user",suffixes=('_l','_r'))

在这里插入图片描述

四.join数据连接融合

left.join(right, on=None, how='left', lsuffix='', rsuffix='', sort=False)

五.对指定属性排序

#升序
history.sort_values(by='avg_cur_bal')[:5]
#降序
history.sort_values(by='avg_cur_bal',ascending=False)[:5]
#将缺失值排在最前面
history.sort_values(by='avg_cur_bal',na_position='first')[:5]

六.删除某列并对缺失值进行处理

a.drop(columns='b',replace=True)
a.info()#查看缺失值
combine.dropna(how="any",axis=0,inplace=True)
#0行1列 any为有则删除 all为都为na才删除 

七.strip去除%

int_rate = combine.lieming.str.strip('%')

八.使用to_numeric将字符串转化为数值型

#dtype: object
int_rate=pd.to_numeric(int_rate)
int_rate.dtype
#dtype('float64')

九.使用cut与qcut将某变量离散化 分割

annual_inc = pd.cut(combine.annual_inc,bins=[np.min(combine.annual_inc)-1,np.percentile(combine.annual_inc,50),np.max(combine.annual_inc)+1],labels=['low','high'])
#bins内为区间 np.percentile求取数列第50%分位的数值
annual_inc.value_counts()
'''low     613
   high    603
   Name: annual_inc, dtype: int64'''

#cut也可以直接指定划分份数,将数据等距划分
pd.cut(combine.annual_inc,5).value_counts()
'''
(15436.0, 128800.0]     1085
(128800.0, 241600.0]     106
(241600.0, 354400.0]      20
(354400.0, 467200.0]       3
(467200.0, 580000.0]       2
Name: annual_inc, dtype: int64
'''
pd.qcut(combine.annual_inc,2).value_counts()
#它将按照每个区间中频数相同的原则进行划分,当我们指定划分份数后,就会用相应的分位数进行划分。
'''
(15999.999, 66000.0]    613
(66000.0, 580000.0]     603
Name: annual_inc, dtype: int64
'''

十.使用replace与map对变量进行值替换

combine['loan_status'].replace(to_replace=['Fully Paid','Current','Charged Off','In Grace Period','Late (31-120 days)'],
                               value=[0,0,1,1,1],
                               inplace=True)
#可以同时指定不同变量的不同值替换为相同新值。                               
test_loan.replace(to_replace={'loan_status':'Fully Paid','grade':'A'},value='Good')
#也可以指定正则表达式进行替换,这时需要设定参数regex为True,代表to_replace部分输入的是正则表达式。
#如查找所有以C开头的字段并替换为Bad。
test_loan.replace(to_replace='C+.*$', value='Bad', regex=True)
#如果只是针对某一个Series进行数值替代,我们也可以使用map方法。
test_loan['loan_status'].map({'Fully Paid':0,'Charged Off':0,'In Grace Period':1})

def f(x):
    if x < 12:
        return 'Low'
    else:
        return 'High'
combine['int_rate'][:5].map(f)
'''
0    high
1    high
2     low
3     low
4    high
Name: int_rate, dtype: object
'''

十一.get_dummies进行哑变量处理

 pd.get_dummies(combine['grade'], prefix='grade',drop_first=True)[:5]

在这里插入图片描述

标签:right,变量,python,Lending,Club,user,test,loan,left
来源: https://blog.csdn.net/weixin_44039266/article/details/115276896