在获得数据之后、分析数据之前,我们一般需要对数据总体进行一个概览,如有哪些字段,每个字段的类型,值是否缺失等,以下列出了几种方法,供我们方便快捷的查看dataframe的数据类型。
1、维度查看:df.shape
# 以某表为例,先读取源数据,不同城市,每天的产品销售信息
engine = create_engine('mysql+pymysql://username:password@localjost:3306/dataset?charset=utf8')
sql = 'select * from dw_customer_order'
gather_customer_order = pd.read_sql_query(sql,con=engine)
gather_customer_order.shape
返回结果如下如所示,说明此表格一共有20w+行,16列:
(203401, 16)
2、数据表基本信息(维度、列名称、数据格式、所占空间等):df.info()
gather_customer_order.info()
返回结果如图,可见,用info方法可以非常全面的看出表格的各项属性,包括:
1.表格的维度:203401行 * 16列,RangeIndex:0-203400
2.表格的列名,是否为空值和列字段类型dtype(后面我会给出pandas的数据类型和Python数据类型的匹配关系图!!!)
3.表格所占空间:24.8M+
<class 'pandas.core.frame.DataFrame'>
RangeIndex: 203401 entries, 0 to 203400
Data columns (total 16 columns):
# Column Non-Null Count Dtype
--- ------ -------------- -----
0 create_date 203401 non-null object
1 product_name 203401 non-null object
2 cpzl_zw 203401 non-null object
3 cplb_zw 203401 non-null object
4 order_num 203401 non-null int64
5 customer_num 203401 non-null int64
6 sum_amount 203401 non-null float64
7 is_current_year 203401 non-null object
8 is_last_year 203401 non-null object
9 is_yesterday 203401 non-null object
10 is_today 203401 non-null object
11 is_current_month 203401 non-null object
12 is_current_quarter 203401 non-null object
13 chinese_province 203401 non-null object
14 chinese_city 203401 non-null object
15 chinese_territory 203401 non-null object
dtypes: float64(1), int64(2), object(13)
memory usage: 24.8+ MB
3、每一列数据的格式:df.dtypes
这个功能与df.info()类似,如果只想查看每一列存储的是什么数据格式,那么可以直接使用df.dtypes
gather_customer_order.dtypes
返回结果如图,可以看到,这个结果基本就是df.info()的简化版,指明了各列的数据类型。
create_date object
product_name object
cpzl_zw object
cplb_zw object
order_num int64
customer_num int64
sum_amount float64
is_current_year object
is_last_year object
is_yesterday object
is_today object
is_current_month object
is_current_quarter object
chinese_province object
chinese_city object
chinese_territory object
dtype: object
4、某一列格式:df['B'].dtype
分析过程中,由于字段繁多,所以用到某字段时需要适时查看,同样可以运用dtype,此处不再赘述。
由上文可见,float64,int64,object都是pandas专有的数据格式,同理,Python,numpy都有自己的一套数据格式,它们之间的对应关系可参考下面的表格:
数据类型对应表
这里需要强调的是object类型实际上可以包括多种不同的类型,比如一列数据里,既有整型、浮点型,也有字符串类型,这些在pandas中都会被标识为‘object’,所以在处理数据时,可能需要额外的一些方法提前将这些字段做清洗,str.replace(),float(),int(),astype(),apply()等等。
如果觉得有用,给我点个赞吧,你的支持就是对我最大的鼓励!ღ( ´・ᴗ・` )❥
网友评论