一.Pandas的概述
pandas 是 Python 的核心数据分析支持库,它的功能非常强大,不仅提供了快速、灵活、明确的数据结构,而且可以简单、直观地处理关系型、标记型数据。
pandas 的目标是成为 Python 数据分析实践与实战的必备高级工具,其长远目标是成为最强大、最灵活、可以支持任何语言的开源数据分析工具。
二.pandas中Series的应用
s = pd.Series(np.random.rand(5)) # rand()是拟合一个标准正态分布, Series创建数据
print(s.index) # 获取数据下标
print(s.values) # 获取数据的值
# 字典:index:value
dic = {'chinese': 90, 'math': 100, 'english': 99}
s1 = pd.Series(dic) # 通过字典转换
print(s1)
arr = ['chinese', 'math', 'english']
s2 = pd.Series(arr, index=['a', 'b', 'c']) # 自定义索引
print(s2)
pytharm代码如下:
三.Series的索引和切片
se1 = pd.Series(data=[1, 2, 3, 4], index=list('abcd'))
# 通过索引取值
print(se1[1])
print(se1['a'])
# 取多个不连续的值
print(se1[[2, 3, 1]]) # 用两个括号括起数据,表示取数组
# 取连续的值 索引切片
print(se1[0:2])
print(se1['a':'d'])
pytharm代码如下:
四.Pandas常见的操作
# 按照给定的下标排序,无则为空
s3 = s.reindex([1, 2, 4, 3, 5])
s4 = s.rename(5) # 重命名
# 增/改
s[5] = 'Numba' # s[index]=new
print(s) # 查看原数组
# 删
s5 = s.drop(2) # 删除有返回值
print(s5)
# 相加对齐
print(s1 + s2)
pytharm代码如下:
五.Pandas中 DataFrame 的使用
df1 = pd.DataFrame(np.random.randint(0, 20, (4, 5)), index=[1, 2, 3, 4], columns=['a', 'b', 'c', 'd', 'e'])
#查看数据
print(df1)
print(df1.shape) # 打印行
print(df1.columns) # 打印列
print(df1.index.tolist()) # 转成列表
print(df1.head(3)) # 查看数据前3行
print(df1.tail(3)) # 查看数据后3行
#取值
print(df1[2])
print(df1[[3,2,4]]) #查看多个不连续值
print(df1[1:3]) #切片查看连续的值
print(df1[1]['a']) #通过坐标取数组的单个值
# loc 和 iloc 函数的用法
print(df1.loc[1,3]) #用通过坐标取数组的单个值
print(df1.loc[:,['a','b']]) #通过坐标取得多行多列的值
print(df1.iloc[1,'c']) #用通过坐标取数组的单个值
print(df1.iloc[:,['a','b']]) #通过坐标取得多行多列的值
#排序
print(df1.sort_index()) #按照索引升序
print(df1.sort_values(by=[1,2,3,4],ascending=False)) #按值降序排序
print(df1.rank(method='first',ascending=False)) #排名
#布尔(bool)索引
print(df1[df1[1]>5]) # 筛选符合条件的数据