数据分析之pandas库学习

Arya Lv3

前言💟

最近接触到一个合作项目,要对excel表格进行操作。我用openxl写好了自己这部分的功能模块,本来一切都风和日丽,谁知道一看源代码,这个项目使用的是pandas来对excel表格进行读写操作。赶巧这个项目因为分镜那边在赶需求受到了拖延,我就打算重新用pandas改一下我写的这部分功能。顺便学习一下这个强大的数据分析库。
参考文档
参考教程

Pandas的数据结构

DataFrame

表格型数据结构,多行多列。具有行索引index和列索引columns,可以被看做由Series组成的字典。

Series

Series表示一维数据:一行或者一列。由一组数据以及与这些数据相关的数据标签(列索引)组成。

查询数据

df.loc 可以通过标签或者布尔数组访问一组行或者列
参考文档

查询一个数据

通过df.loc[某行,某列],精确到某行某列,查询它的值。

查询一行或者一列(Series)

通过df[某行或者某列]查询某行或者某列的数据。通过df.loc[某行,[始列,终列]],或者df.loc[始行:终行,列]查询一个某行或者某列某个范围的数据。

查询一个表(DataFrame)

通过df[某行(列),某行(列),某行(列)...]查询一个由某几行(列)组成的DataFrame
通过df.loc[[始行,终行],[始列,终列]],或者df.loc[始行:终行,始列:终列]查询一个有范围的二维数据

根据条件表达式进行数据的筛选

通过df.loc[条件,:],符合的条件一般是与被切片轴长度相同的布尔数组。例如,这个布尔数组可以通过df[行名]>6来获取,即df.loc[df[列名]>6,:],来获取该列大于6的数据,“:”表示获取改行全部的列数据。

根据函数对数据进行查询

将DataFrame的每一行或者每一列传入函数的参数df中,然后返回符合条件的行或者列,组成新的DataFrame。例如:

1
2
3
4
def query_my_data(df):
return df["aaa"]>10 & df["bbb"]<20

df.loc[query_my_data,:]

或者

1
df.loc[lambda df:df["aaa"]>10 & df["bbb"]<20]

新增或者修改数据列

直接赋值

1
2
3
4
5
6
df.loc[行,列]=修改后的数值     #修改某个值
df.loc[某行,:]=修改后的数值 #修改某行全列为某值
df.loc[:,某列]=修改后的数值 #修改某列全行为某值
df.loc[:某列]=df[列1]-df[列2] #修改全部行中每行某列的值为每行列1-每行列2

df.loc[:,列名]=某值 #给DataFrame新增一列

df.apply方法

参考文档
对DataFrame的某个轴应用一个函数,来修改或增加数据。参数axis的取值有两个,0和1,0表示传入的Series的key为行名(即循环每一列),1表示传入的Series的key为列名(即循环每一行),例如

1
2
df = pd.DataFrame([[4, 9]] * 3, columns=['A', 'B'])
df.loc["sum",:]=df.apply(np.sum, axis=1) #增加一行,值为该列中的各行值相加

df.assign方法

参考文档
参数传入一个Series或者一个函数。

1
2
df = pd.DataFrame({'temp_c': [17.0, 25.0]},index=['Portland', 'Berkeley'])
df.assign(temp_f=lambda x: x.temp_c * 9 / 5 + 32)

统计

1
2
3
4
5
6
7
8
9
10
df.describe()               #统计所有数字结果
df[xxx].mean() #统计xxx的平均值
df[xxx].min() #统计xxx的最小值
df[xxx].max() #统计xxx的最大值

df[xxx].unique() #统计xxx去重后的数据
df[xxx].value_counts() #统计xxx中各项出现了多少次

df.cov() #协方差矩阵,协方差越高,两个参数的相关性越高,正数为正相关,负数为负相关
df.corr() #相关系数矩阵,相关系数越靠近1,两个参数越相似,正数为正向相似,负数为反向相似

后话😇

学了两天,大概了解了pandas是对表格数据处理的好工具,它独特的数据结构使得它对数据处理的速度(循环遍历)大大加快。再学下去我就去做数分了哈哈哈,就暂时学到这里,如果大家有兴趣可以看这部教程 ~有缘再见!

  • 标题: 数据分析之pandas库学习
  • 作者: Arya
  • 创建于 : 2024-01-03 08:00:00
  • 更新于 : 2024-01-25 09:47:51
  • 链接: https://aryagala0.github.io/2024/01/03/python基础/python数据分析之pandas库/
  • 版权声明: 本文章采用 CC BY-NC-SA 4.0 进行许可。
 评论