Pandas基础:查看各列数据类型

看到很多人查这个问题,刚好这两天在项目上也用到这一点。要查看各列的数据类型,因为数据处理时,首先就是要高清手里的数据都是什么类型的,尤其要关注字符型,因为很多算法都是不支持字符类型的。

当数据维度和数据量都很少的时候,可以很直观的看出来,但是数据量一大,很难肉眼观测,而且很多时候是看不出隐藏的数据问题的。所以要用代码,其实代码很简单。

一、读取数据

df = pd.read_csv('data.csv')

二、查看各列数据类型

1.少量数据

df.dtypes

输出: 

age                                                int64
province_x                                        object
gender                                             int64
i_cnt_accountemail_all_all_90day                   int64
i_cnt_mobile_all_all_90day                         int64
i_cnt_partner_Lending_Bank_1800day                 int64
i_cnt_partner_Lending_Bank_180day                  int64
i_cnt_partner_Lending_Bank_30day                   int64
i_cnt_partner_Lending_Bank_365day                  int64
i_cnt_partner_Lending_Bank_540day                  int64
i_cnt_partner_Lending_Bank_720day                  int64

2.大量数据

cols = df.columns
for col in cols:
    print(col+' : '+ str(df[col].dtype))

输出:

age : int64
province_x : object
gender : int64
i_cnt_accountemail_all_all_90day : int64
i_cnt_mobile_all_all_90day : int64
i_cnt_partner_Lending_Bank_1800day : int64
i_cnt_partner_Lending_Bank_180day : int64
i_cnt_partner_Lending_Bank_30day : int64
i_cnt_partner_Lending_Bank_365day : int64
i_cnt_partner_Lending_Bank_540day : int64
i_cnt_partner_Lending_Bank_720day : int64
i_cnt_partner_Lending_Bank_7day : int64
i_cnt_partner_Lending_Bank_90day : int64
i_cnt_partner_Lending_Bigdatafinance_1800day : int64

有时候,由于维度太多,一一打印出来也难以分析。例如,项目中我只要查看非数值型的列,并将他们删除。

只看字符类型的列:

cols = df.columns
for col in cols:
    if str(df[col].dtype) == 'object':
        print(col)

输出:

province_x
LOAN_START_DATE_x
ENCODE_CERT_CODE
ENCODE_MOBILE_PHONE_x
province_y
m_up_devicebrand
LOAN_START_DATE_y
ENCODE_MOBILE_PHONE_y

删除这些列:

df = df.drop(['province_x','LOAN_START_DATE_x','ENCODE_CERT_CODE','ENCODE_MOBILE_PHONE_x','province_y',
             'm_up_devicebrand','LOAN_START_DATE_y','ENCODE_MOBILE_PHONE_y'],axis=1)

猜你喜欢

转载自blog.csdn.net/opp003/article/details/87356903