## 区分DataFrame里面的数值变量和离散变量## DataFrame_data:待处理的DataFrame类型的变量## O_index:数值型变量列名## C_index:离散型变量的列名defdistinguish_Char_Num(DataFrame_data):import copy
m, n = DataFrame_data.shape
## 存放数值型变量所在的列
O =[]## 存放离散型变量所在的列
C =[]
data = copy.deepcopy(DataFrame_data)for i inrange(n):try:ifisinstance(data.iloc[0, i],int)orisinstance(data.iloc[0, i],float)orisinstance(data.iloc[0, i], np.int64 )orisinstance(data.iloc[0, i], np.int32):
O.append(i)elifisinstance(data.iloc[0, i],str):
C.append(i)else:raise ValueError("the %d column of data is not a number or a string column"% i)except TypeError as e:print(e)# 数值型变量
O_data = copy.deepcopy(data.iloc[:, O])# 分类型变量
C_data = copy.deepcopy(data.iloc[:, C])## 数值型变量的列名
O_index = O_data.columns.tolist()## 分类型变量的列名
C_index = C_data.columns.tolist()return O_index , C_index