![13825820-e331b137535b9f18.jpg](https://img-blog.csdnimg.cn/img_convert/d65c46fe843945be24fb6da16cf919ba.png)
Pandas是基于Numpy的一种工具,这个工具是为了解决数据分析任务而创建的,pandas纳入了大量的库和一些标准的数据模型,提供了高效的操作大型数据集所需的工具,pandas提供了大量能使我们快速便捷的处理数据的函数和方法。Pandas是使Python成为强大而高效的数据分析环境的重要因素之一。另外
在pandas包含了三种数据结构:
- Series
- DataFrame
- Time-series
下面我们就介绍一下Series和DataFrame这两种常用的数据结构,Time-series时间序列,我们后期会专门在开一篇文章仔细的去讲述一下。
一、Series
Series是一维数组,与Numpy中的一维array类似。二者与Python基本的数据结构List也很相近,其区别是:List中的元素可以是不同的数据类型,而Array和Series中则只允许存储相同的数据类型,这样可以更有效的使用内存,提高运算效率,并且series可以运用Ndarray或字典的几乎所有索引操作和函数,融合了字典和ndarray的优点。
1、series索引
Series类型是由一组数据及与之相关的数据索引组成
自动索引:不创建系统自动创建索引。
自定义索引:自定义索引,创建完自定义索引后,自动索引也在。
Series是一维带’标签’数组,它的基本操作类似Ndarray和字典,genuine索引对齐。
2、创建对象
Series(列表/元组/字典/标量/Numpy数组/range等序列,<index=param1>)不写index会自动创建索引,如果写定指定索引,index可以是列表,numpy数组。
列子如下:
- 参数:列表或元组,并分别创建自动索引和手动索引(自动索引还在)
![13825820-1cd0992f030e4f80.jpg](https://img-blog.csdnimg.cn/img_convert/81f489b82c8bc7469cf9aa2216b2c6dd.png)
可以看出index('a', 'b', 'c', 'd', 'e')分别对应1,3,5,7,9
- 参数:字典,并分别创建自动索引和手动索引
字典的key作为索引,value作为值
![13825820-424e4ae1f75da61c.jpg](https://img-blog.csdnimg.cn/img_convert/f6c9408d402193ae4831315e5fe1d2fd.png)
如果字典中在设置index,就相当于是从字典中挑选数据
![13825820-e806a34ad594c8c7.jpg](https://img-blog.csdnimg.cn/img_convert/e82c4967f86fc3fc2031d638928ba656.png)
![13825820-bd660e319f993820.jpg](https://img-blog.csdnimg.cn/img_convert/78601ce5585754b1d5fde3ad432090f7.png)
- 参数:标量
![13825820-2f38699fe53152a0.jpg](https://img-blog.csdnimg.cn/img_convert/3040e59be0677f66c090cd383469d85f.png)
![13825820-ad9263ecd2f78c45.jpg](https://img-blog.csdnimg.cn/img_convert/9ccc4158e76e0d4574b785e90ff49f8b.png)
Index可以是列表,元组,range序列,numpy数组
![13825820-2f9684615d877ffa.jpg](https://img-blog.csdnimg.cn/img_convert/56eae6fbe6e7de46ca7fa8ff13fe50d6.png)
- 参数:numpy数组(ndarray)
![13825820-9e3e0175cab224ac.jpg](https://img-blog.csdnimg.cn/img_convert/d87162fd5d4f9d6c6b44f65c0cd13123.png)
3、属性
Series的主要属性包括index和values两部分
属性
说明
Values
获取数据,底层存储的是numpy数组
Index
获取索引
还有两个不太重要的属性
Name
Series的name(在DataFrame中没有Name属性)
Index.name
索引的name
还有一些类似于numpy数组的属性,比如dtype和shape等。
下面是一些属性的列子:
![13825820-718c7567cbbe65f5.jpg](https://img-blog.csdnimg.cn/img_convert/5db2694aad4759197164eb68204ed42c.png)
3.1Values值
![13825820-36ddd862801c8b5d.jpg](https://img-blog.csdnimg.cn/img_convert/bfa9d977971eab144b5ff233608571e9.png)
3.2Index索引
![13825820-c002a57d374c49db.jpg](https://img-blog.csdnimg.cn/img_convert/6134539241b2ce70f8540a5d98c0f72a.png)
3.3Name,series的名字
![13825820-129613e409a06d92.jpg](https://img-blog.csdnimg.cn/img_convert/de7a686d718772d02409f2041c50fa09.png)
3.4Index,series索引的名字
![13825820-7e044e459c46b739.jpg](https://img-blog.csdnimg.cn/img_convert/1e9f839511e077d0861a2a579ea1b15e.png)
4、选取
- series类型的选取类似numpy数组,索引的方式相同,采用[],numpy中的运算和操作可用于series类型,可以通过自定义索引的列表进行切片也可以通过自动索引进行切片,如果存在自定义索引,则一同被切片
![13825820-cce308acc5453695.jpg](https://img-blog.csdnimg.cn/img_convert/8ae714d9589e31179c3ca8de3b482cd5.png)
- series类型的操作类似于python字典类型:
通过自定义索引访问,保留字in操作,使用.get()方法
![13825820-c065d8831126eb21.jpg](https://img-blog.csdnimg.cn/img_convert/f99ae0e7b46c72fb4f3cc721c326455e.png)
PS:.get(key,default=none)函数返回指定键的值,如果值不再字典中则返回默认值(默认为空),key是要查找的键,default是设置的默认值。
5、series类型对齐操作
Series+series,series类型在运算中会自动对齐不同索引的数据。
- Series类型对齐
![13825820-fb4dfa90a9bd2ac9.jpg](https://img-blog.csdnimg.cn/img_convert/57005c431f4f6ad673436992d551cb12.png)
6、获取,设置,删除等
6.1获取值
由于具备numpy数组和字典的特性,series可以像使用numpy数组的索引切片或用字典的get一样来用。
![13825820-0ecb0aea91073d93.jpg](https://img-blog.csdnimg.cn/img_convert/d9decae9a3b4d76b7a3aceb1c5058e58.png)
6.2设置/修改:索引和切片
![13825820-4f849b382288a8e8.jpg](https://img-blog.csdnimg.cn/img_convert/e7214eb8df6545a851e6d65b39282c2d.png)
- 将a修改为11
![13825820-afe609678ded61c2.jpg](https://img-blog.csdnimg.cn/img_convert/e102293633ead8e91d27f6a1fede193f.png)
- 将b,c修改为100
![13825820-34e83e5af674292e.jpg](https://img-blog.csdnimg.cn/img_convert/ef224066b2cb294041c5cc9de21b4743.png)
- 将b,c改为101和102
![13825820-77c171e98165a40c.jpg](https://img-blog.csdnimg.cn/img_convert/616fd70e0fbb6d1302ad6a9ec17b8090.png)
- 将b,c改为103和104(注意这次用的是逗号,表示单独挑选出了b和c,上面是b到c)
![13825820-b6021a5db862d8db.jpg](https://img-blog.csdnimg.cn/img_convert/71a9dd7c42e1307e11c4cdb0cda2024f.png)
6.3删除
drop方法(结果改变)和pop(像字典的用法,改变自身)
- Drop:
![13825820-f8592f02e1305cea.jpg](https://img-blog.csdnimg.cn/img_convert/2b432f0339ec875362f418195b5206bc.png)
- 删除a,结果改变
![13825820-a4c259fbdc3d7588.jpg](https://img-blog.csdnimg.cn/img_convert/f9a6c785d84b246d4a71357c4082090e.png)
- 删除b和d
![13825820-4b0847a7623a2574.jpg](https://img-blog.csdnimg.cn/img_convert/48d68932a712aec254d03af51d9559c7.png)
- Pop:
![13825820-f33d806e69706e1a.jpg](https://img-blog.csdnimg.cn/img_convert/46cf74fde8c4eccb2a7072919b1beeb8.png)
二、DataFrame
DataFrame类型由公用相同索引的一组序列组成,是一个表格型的数据类型,每列值类型可以不同。DataFrame即有行索引也有列索引:
- Index axis = 0(默认)
- Column axis = 1(默认)
DataFrame常用于表达二维数据,但可以表达多维数据,基本操作类似于Series,依据行列索引
1、DataFrame的创建
1.1、从内存中创建
语法:
DataFrame(字典/列表/numpy数组/DataFrame,index=0,columns=1)也可以在创建的时候不指定index和columns,在创建完后单独设置这两个属性。
常用的参数:
- 字典:key作为列名,value作为该列的值。
- 列表:作为值
- Numpy数组:作为值
例子:
![13825820-70a1cdb7cf2593e4.jpg](https://img-blog.csdnimg.cn/img_convert/6ffa7db3575ce4b2bc7dd994b557bd2c.png)
- 列表
![13825820-8317677ac28599d1.jpg](https://img-blog.csdnimg.cn/img_convert/576b22c8369664460c59f4c05692b868.png)
手动创建行索引和列索引,方法1:创建的时候就设置好行列索引
![13825820-0513a80658a48866.jpg](https://img-blog.csdnimg.cn/img_convert/0af194a46d2279078e07db20d2f7c567.png)
手动创建行列索引,方法2:创建的时候设置自动索引,之后在修改
![13825820-1dd6546af3cdac3b.jpg](https://img-blog.csdnimg.cn/img_convert/01f72af7dfb67801a27e461edb6a591c.png)
- 二维numpy数组
手动输入数组
![13825820-c678afb1f3da3402.jpg](https://img-blog.csdnimg.cn/img_convert/c6b2b656021986a73f59007b525bce6a.png)
使用方法生成数组
![13825820-adac239bd14b021f.jpg](https://img-blog.csdnimg.cn/img_convert/71c6f2e00c68d82e7f85e78854fe6e04.png)
- 字典(key是列名,value可以是数据,也可以是series类型)
手动创建列索引,行索引自动创建
![13825820-2ee155d2c9a23705.jpg](https://img-blog.csdnimg.cn/img_convert/608a65b8a53cafb8e0eb61c302660ad2.png)
手动创建列索引,手动创建行索引
![13825820-c1f808eafc3a0147.jpg](https://img-blog.csdnimg.cn/img_convert/6f102e098eb5d46ed5fd3272ccc19aea.png)
1.2、从文件中创建
DataFrame可以从文件中创建:
文件第一行默认作为列索引(columns),默认为没有行索引,可以通过indx_dol参数设置第1列或前几行作为行索引。如果第一行不作为列索引,设置header=none。
文件编码为utf-8,可以通过参数encoding设置编码。
方式
作用
pd.read_csv(filename)
从CSV文件导入数据, 文件是逗号分隔。
pd.read_table(filename,<sep='\t'>)
从限定分隔符的文本文件导入数据,默认是 tab
pd.read_excel(filename)
从Excel文件导入数据
pd.read_sql(query, connection_object)
从SQL表/库导入数据
pd.read_json(json_string)
从JSON格式的字符串导入数据
pd.read_html(url)
解析URL、 字符串或者HTML文件, 抽取其中的tables表格
pd.read_clipboard()
从你的粘贴板获取内容, 并传给read_table()
下面我们就将上面的这么多方法一个个演示一遍,文章中用的这些数据可以自己生成对应格式的就可以了,这个是不影响的,只要自己掌握了这些知识就好。
![13825820-43038d0378efd47e.png](https://img-blog.csdnimg.cn/img_convert/356f354bd0d3a74362e8faf127c75862.png)
- Pd.read_csv(filename):从CSV文件导入数据,文件是逗号分隔。
- 编码是utf-8
![13825820-e678c0e35e10e694.jpg](https://img-blog.csdnimg.cn/img_convert/d4af842ffb5e39f08c79d868f1a0993b.png)
- 编码是gbk
![13825820-0d2d88a4837a4e0e.jpg](https://img-blog.csdnimg.cn/img_convert/10c680a915645019dbd1da4aeaae93f9.png)
读取的时候,可以带行索引,用index_col=列
![13825820-85a88480131866af.jpg](https://img-blog.csdnimg.cn/img_convert/4dd0fd5bd495ac5104091593bfb50605.png)
- 不把第一行作为列索引(在有些情况下,文件中全部都是数据)
![13825820-e5cb043353ca72b1.jpg](https://img-blog.csdnimg.cn/img_convert/fe252accf395212acbb5ba82f07ee863.png)
2)pd.read_table(filename)
![13825820-31c0ca2980f41941.jpg](https://img-blog.csdnimg.cn/img_convert/71368f5e231ef9a06da24596c261680f.png)
查看DataFrame的信息http://df.info()
![13825820-becea3cd25af1443.jpg](https://img-blog.csdnimg.cn/img_convert/29168cfee5fb2ebe4362866c6d95df29.png)
- pd.read_excel(filename):从Excel文件中导入数据
![13825820-0de1775ca97c3508.jpg](https://img-blog.csdnimg.cn/img_convert/5c7e1ca371edbc8a7f5bb6498a15bad0.png)
- pd.read_sql(query, connection_object):从SQL表/库导入数据
SQLAlchemy是python编程语言下的一款ORM框架,该框架建立在数据库API上,使用关系对象映射进行数据库操作,简言之便是:将对象转换成SQL
首先导入两个模块,连接数据库建议用sqlalchemy,使用pymysql可能会出问题
![13825820-1d43cf5ea9668820.jpg](https://img-blog.csdnimg.cn/img_convert/e5940f2c9ab8e2ec188ea32957e281f9.png)
Sqlalchemy.create(‘mysql+pymysql://用户名:用户名密码@localhost:编号/数据库名称’)
不清楚用户名和编号的可以使用mysql workbench查看
![13825820-2b51313f0490cdbe.jpg](https://img-blog.csdnimg.cn/img_convert/f034d67ca5cb376288c3707c0e343a0d.png)
![13825820-57d96f6e0568ac67.jpg](https://img-blog.csdnimg.cn/img_convert/57880f24361d4a2ace6e3a833bdc8623.png)
将文件写入到数据库中
![13825820-840cfa172b72fdac.jpg](https://img-blog.csdnimg.cn/img_convert/d9e25286c472c85b56bf8695a9587332.png)
![13825820-35e21a6bfb3aeec6.jpg](https://img-blog.csdnimg.cn/img_convert/f2d57798da547d7696f338adaa582cf0.png)
Test是要在数据库中创建的表名,表示的意思是将df的数据传入到数据库lianxi下的表test中
- pd.read_json(json_string)
![13825820-f13042be1fefd423.jpg](https://img-blog.csdnimg.cn/img_convert/b3b3267bc6687188df161d3b06e46f56.png)
- pd.read_html(url)
首先要安装html5lib,pip install html5lib
![13825820-3875cc6d0b158a91.jpg](https://img-blog.csdnimg.cn/img_convert/fb307cb0aae2a3dca3715c383d0350d0.png)
- pd.read_clipboard():从剪切板导入数据
首先复制一段文字
然后运行代码
![13825820-192dd07ab79ebb58.jpg](https://img-blog.csdnimg.cn/img_convert/af83a39fcceb9a5817ca01ce1509abc0.png)
2、写入文件
写入数据后,前往输入路径下查看文件
方式
作用
df.to_csv(filename)
导出数据到CSV文件
df.to_excel(filename)
导出数据到Excel文件
df.to_sql(table_name, connection_object)
导出数据到SQL表
df.to_json(filename)
以Json格式导出数据到文本文件
![13825820-36673313ad853d16.jpg](https://img-blog.csdnimg.cn/img_convert/bace6950ba668c3cb0dff8a9caf8fd3c.png)
1)第一种方式:将行索引和列索引肉写入到文件
- df.to_csv(filename):将文件导出到CSV文件中
![13825820-fa130eb2a211cc58.jpg](https://img-blog.csdnimg.cn/img_convert/42bc38b66095cc9bae072b2e638b5b85.png)
- df.to_excel(filename):导出数据到Excel文件
![13825820-a741fa5437721136.jpg](https://img-blog.csdnimg.cn/img_convert/72e3e27956c51089e9b2a660108958bb.png)
- df.to_json(filename):以Json格式导出数据到文本文件
![13825820-6a8f6e838f61ee15.jpg](https://img-blog.csdnimg.cn/img_convert/7d7fdbb6bf5f835d564d45e880b48b28.png)
2)第二种方式:行索引不写入
![13825820-130c6f3bc1f15958.jpg](https://img-blog.csdnimg.cn/img_convert/61b034bf2722618c1b831603f67437e8.png)
3)第三种方式:行和列索引都不写入
![13825820-75889d31f37f7117.jpg](https://img-blog.csdnimg.cn/img_convert/5755f479670d37c74f63be51f348b842.png)
3、DataFrame的属性
属性
说明
Values
值
Index
行索引
Columns
列索引
Index.name
行索引名字
Columns.name
列索引名字
其他属性:dtypes,shape等,可以用numpy数组等等大部分属性
![13825820-28749d72bccb9ebd.jpg](https://img-blog.csdnimg.cn/img_convert/5c0ea3df0e17e94abde4ad97753856a0.png)
- 查看自身的属性(重要):值,行索引,列索引
![13825820-f9e334020fb22e2b.jpg](https://img-blog.csdnimg.cn/img_convert/36264d682b99bd98548c79b196b4bb2f.png)
- 查看自身属性(不重要):列索引名字,行索引名字
![13825820-c7a3b13404affb76.jpg](https://img-blog.csdnimg.cn/img_convert/36be86da56b83048dc6d7dc45f3ecd16.png)
- 查看其他属性:可以使用ndarray的属性
![13825820-e2dfb6a806abd590.jpg](https://img-blog.csdnimg.cn/img_convert/fdf45ec188d8d81d51c4b224aaff3d23.png)
4、DataFrame的函数和方法
4.1、取值和修改(索引,切片,ix,loc,iloc)
DataFrame的取值和修改应该从三个层次考虑:行列,区域,单元格。每个层次都有其对应的方法:
行列df[],df.ix
区域df.ix[]
单元格df.ix
其中ix官方推荐使用iloc和loc代替
loc和iloc的用法和ix基本一样,只是loc参数用手动索引,iloc用自动索引,ix混用
![13825820-8c87942b946c8cc9.jpg](https://img-blog.csdnimg.cn/img_convert/d2e1684c71dfd9a2fbdf9ebb13880c9e.png)
取行:
![13825820-5e52d1e4efe0ee03.jpg](https://img-blog.csdnimg.cn/img_convert/8009db69606f77e44b46350e210d1e90.png)
取列:
![13825820-5ea8d4f77f0dafb6.jpg](https://img-blog.csdnimg.cn/img_convert/00eaa944fb1fef87921a6ada966c9ad4.png)
5、其他函数或方法
5.1查看数据
- df.head(n): 查看DataFrame对象的前n行
![13825820-37cb13572f1ea1f9.jpg](https://img-blog.csdnimg.cn/img_convert/72695998fcb47f6df9a3ebcb00598c7a.png)
- df.tail(n): 查看DataFrame对象的最后n行
![13825820-0c694b558f4d9757.jpg](https://img-blog.csdnimg.cn/img_convert/0ab4230e0a411074499ed42e1483542e.png)
- df.shape: 查看行数和列数
![13825820-530decb84c9eae51.jpg](https://img-blog.csdnimg.cn/img_convert/85e9662620e6ae93de108582c6317314.png)
- http://df.info(): 查看索引、 数据类型和内存信息
![13825820-11d1cee49b52fd25.jpg](https://img-blog.csdnimg.cn/img_convert/6dc2dc4e02f7f97e9227ec4633736c59.png)
- df.describe(): 查看数值型列的汇总统计
![13825820-6380c765224efe12.jpg](https://img-blog.csdnimg.cn/img_convert/cc860fa49d4ae1d98ebef9abbd29104d.png)
- s.value_counts(dropna=False): 查看Series对象的唯一值和计数
![13825820-a2c8b97b87fc812f.jpg](https://img-blog.csdnimg.cn/img_convert/a500f311d1f83bf570d7bf25ca58c6fe.png)
![13825820-2e5cb49856b2a15d.jpg](https://img-blog.csdnimg.cn/img_convert/4b300986f6b39d1798dc64ba8bbf6f75.png)
- df.apply(函数):把df应用于某个函数
![13825820-3a8393d559d1fd1c.jpg](https://img-blog.csdnimg.cn/img_convert/ad72d827662bbc91b39c472d4c3371eb.png)
5.2、清洗数据
![13825820-a4164e407f39ddcb.jpg](https://img-blog.csdnimg.cn/img_convert/131c2740c1d6989629abed6abcda2b0b.png)
- df.columns = ['a','b','c','d','e']: 重命名列名
![13825820-f65bbb00f673bbe6.jpg](https://img-blog.csdnimg.cn/img_convert/c7fb203639ad6d8e187f0c6540eb857e.png)
- df.isnull(): 检查DataFrame对象中的空值, 并返回一个Boolean数组
![13825820-a72987fbe15a568a.jpg](https://img-blog.csdnimg.cn/img_convert/0c61bfaafd5c3ea5e5535ae818d6c992.png)
- df.notnull(): 检查DataFrame对象中的非空值, 并返回一个Boolean数组
![13825820-c51527e9b8cfa1f4.jpg](https://img-blog.csdnimg.cn/img_convert/d3cb78d3cbc510d023ef8c4c68e1ca60.png)
- df.dropna(): 删除所有包含空值的行
![13825820-df1676a52ca30517.jpg](https://img-blog.csdnimg.cn/img_convert/487d1b3cf2b70a6017450ee9158614c3.png)
- df.dropna(axis=1): 删除所有包含空值的列
![13825820-92318eb7bd742985.jpg](https://img-blog.csdnimg.cn/img_convert/1ee15e99a85ac7a3f7223882f8c8a41c.png)
df.dropna(axis=1,thresh=n): 删除所有小于n个非空值的列
![13825820-0b906b7ce0fbdcd4.jpg](https://img-blog.csdnimg.cn/img_convert/265006bc30a070aa26f1889b394f913e.png)
- df.fillna(x): 用x替换DataFrame对象中所有的空值
![13825820-4e39c559a235d88e.jpg](https://img-blog.csdnimg.cn/img_convert/766c7383386e88f94a3439c9a071b35d.png)
- s.fillna(s.mean()): 用某列的均值来填充某列的空值
![13825820-70ca6cee22d9e3fb.jpg](https://img-blog.csdnimg.cn/img_convert/e55d2eaf575798eae307f0a0f6e8db8a.png)
- s.astype(float): 将Series中的数据类型更改为float类型
![13825820-0e268920ab9f87f5.jpg](https://img-blog.csdnimg.cn/img_convert/4a408473c4a996c8850b970f3f151f0f.png)
- s.replace(1,'one'): 用‘one’ 代替所有等于1的值
![13825820-224108e0db8dbaad.jpg](https://img-blog.csdnimg.cn/img_convert/19da6d6231a8f19c1c9214838e0d607e.png)
- df.rename(columns=lambda x: x + '1'): 批量更改列名
![13825820-fb2251fa479b72f6.jpg](https://img-blog.csdnimg.cn/img_convert/4308236a8e151eb8383b344ada8a1e3b.png)
- df.rename(columns={'old_name': 'new_ name'}): 选择性更改列名
![13825820-d979d38e8ddea883.jpg](https://img-blog.csdnimg.cn/img_convert/53bafaabb3f3a0e5698fcec86dae9da2.png)
- df.set_index('column_one'): 更改索引列
![13825820-d56f68b11b95f708.jpg](https://img-blog.csdnimg.cn/img_convert/e79e889f22052d52da3efb86b63008de.png)
- df.rename(index=lambda x: x + 1): 批量重命名索引
![13825820-082f573a37d0f7c3.jpg](https://img-blog.csdnimg.cn/img_convert/de91935042a9827e4bd09b452414faeb.png)
5.3、数据规整
- df[df[col] > 0.5]: 选择col列的值大于0.5的行
- df.sort_values(col1): 按照列col1排序数据, 默认升序排列
- df.sort_values(col2, ascending=False): 按照列col1降序排列数据
- df.sort_values([col1,col2], ascending=[True,False]):先按列col1升序排列, 后按col2降序排列数据
- df.groupby(col): 返回一个按列col进行分组的Groupby对象
- df.groupby([col1,col2]): 返回一个按多列进行分组的Groupby对象
- df.groupby(col1).agg(np.mean): 返回按列col1分组的所有列的均值
- df.groupby(col1).sum(): 返回按列col1分组的所有列的和
- df.groupby(col1).mean()[col2]: 返回按列col1进行分组后, 列col2的均值
- data.apply(np.mean): 对DataFrame中的每一列应用函数np.mean
- data.apply(np.max,axis=1): 对DataFrame中的每一行应用函数np.max
- df.pivot_table(index=col1, values=[col2,col3], aggfunc=np.mean):创建一个按列col1进行分组, 并计算col2和col3各自均值的数据透视表
- pd.crosstab(df.col1, df.col2): 按照指定的行(col1)和列(col2)统计分组频数
5.4、数据合并
- df1.append(df2): 将df2中的行添加到df1的尾部
![13825820-c7e7d12c77e84da4.jpg](https://img-blog.csdnimg.cn/img_convert/1d230055911afabba4ad060073a1f022.png)
- pd.concat([df1, df2],axis=0):将df2中的行添加到df1的底部(axis=1的时候将df2的列添加到df1的尾部)
![13825820-df5c887d5978f184.jpg](https://img-blog.csdnimg.cn/img_convert/26a59241494207590266aaf96961683f.png)
5.5、数据统计
- df.describe(): 查看数据值列的汇总统计
![13825820-857ac6502efbe9b5.jpg](https://img-blog.csdnimg.cn/img_convert/567fe74d748be7bcdb6333ac2e784118.png)
- df.mean(): 返回所有列的均值
![13825820-50c0502a4772cbf5.jpg](https://img-blog.csdnimg.cn/img_convert/11f3b6dfde3ab6b44f5d6b2c11114b8f.png)
- df.corr(): 返回列与列之间的相关系数
![13825820-5729a551d71cf361.jpg](https://img-blog.csdnimg.cn/img_convert/73d936d87e828811a0fc6274578d7524.png)
- df.count(): 返回每一列中的非空值的个数
![13825820-4e20869970e56b06.jpg](https://img-blog.csdnimg.cn/img_convert/c6f8498ca99d3e6582baceddf6509dbf.png)
- df.max(): 返回每一列的最大值
![13825820-60009f8d691088fe.jpg](https://img-blog.csdnimg.cn/img_convert/b432039bd977c8150f15a95ac6084fef.png)
- df.min(): 返回每一列的最小值
![13825820-ec16fff02677af51.jpg](https://img-blog.csdnimg.cn/img_convert/5f5e04e4b1fe8027fa3a1631df5f70bb.png)
- df.median(): 返回每一列的中位数
![13825820-7ffe05a45fbb76b3.jpg](https://img-blog.csdnimg.cn/img_convert/a56d98c7f5e91b55f7c605eb88674fff.png)
- df.std(): 返回每一列的标准差
![13825820-9f57dae7f46c139b.jpg](https://img-blog.csdnimg.cn/img_convert/bea323ec7ea362878c7a1f19eaeba537.png)