熟悉python的都知道,pandas为python提供了高效的数据治理方法,个人感觉类似python版本的sql,下面我们一起来了解一些pandas的常用操作。
首先我们要知道pandas内部的两种数据类型,Series和DataFrame。
- Series本质就是python的列表
- DataFrame是二维的数组结构,既有x轴,也有y轴。
下面开始介绍:
- 读取文件/操作数据库
import pandas as pdimport numpy as np from sqlalchemy import create_engine#1.pandas的读取文件操作#连接mysql,读取数据engine = create_engine('mysql+pymysql://root:root123@localhost/test')sql = 'select * from job51'df1 = pd.read_sql(sql=sql,con=engine)print(df1.head(5))
#读取excelcsv等等
其内置的读取方法已经满足我们的很多需要。
创建一个DataFrame非常easy,下面看代码
dates = pd.date_range('20190301',periods=8)#periods代表日期的总个数df = pd.DataFrame(np.random.randn(8,5),index=dates,columns=list('ABCDE'))#我们以设置的日期作为DataFrame的索引列,其中list('ABCDE')就是把str转换为list类型print(df)#也就是说我们应该产生出一个6列 8行的表格
如上面所示,看下输出的结果。
我们一般用df.head()取前面几行,看一下head的源码部分。如下图。
其默认了n=5,也就是,df.head()显示的就是5行,当然这里可以任意更改。既然有head()那肯定就有tail()方法,原理一样不过是从后面截取/ df.tail()。
下面我们来打印一下他的索引列,其实就是我们创建的时间序列使用。
print(df.index)
输出结果,是个series,也就是列表类型。
再来看一下他的整个二维数组的值使用如下方法。
print(df.index)
结果如下。以每一行为一个列表的形式展现,访问组内元素和访问嵌套列表一样
list[index][index]
有的时候我们希望列表可以横纵交换,使用如下方法。
print(df.T)#转置
结果如图。
再来看看他的排序方法
print(df.sort_values('C'))#指定列排序,也就是按照C列排序
文章过长,暂时先分享到这里。有兴趣一起探讨。