Python pandas用法

2024-05-14

1. Python pandas用法

 在Python中,pandas是基于NumPy数组构建的,使数据预处理、清洗、分析工作变得更快更简单。pandas是专门为处理表格和混杂数据设计的,而NumPy更适合处理统一的数值数组数据。   使用下面格式约定,引入pandas包:
    pandas有两个主要数据结构:Series和DataFrame。 
   Series是一种类似于一维数组的对象,它由 一组数据 (各种NumPy数据类型)以及一组与之相关的 数据标签(即索引) 组成,即index和values两部分,可以通过索引的方式选取Series中的单个或一组值。
    pd.Series(list,index=[ ]) ,第二个参数是Series中数据的索引,可以省略。
   Series类型索引、切片、运算的操作类似于ndarray,同样的类似Python字典类型的操作,包括保留字in操作、使用.get()方法。   Series和ndarray之间的主要区别在于Series之间的操作会根据索引自动对齐数据。
   DataFrame是一个表格型的数据类型,每列值类型可以不同,是最常用的pandas对象。DataFrame既有行索引也有列索引,它可以被看做由Series组成的字典(共用同一个索引)。DataFrame中的数据是以一个或多个二维块存放的(而不是列表、字典或别的一维数据结构)。
    pd.DataFrame(data,columns = [ ],index = [ ]) :columns和index为指定的列、行索引,并按照顺序排列。
   如果创建时指定了columns和index索引,则按照索引顺序排列,并且如果传入的列在数据中找不到,就会在结果中产生缺失值:
                                            数据索引 :Series和DataFrame的索引是Index类型,Index对象是不可修改,可通过索引值或索引标签获取目标数据,也可通过索引使序列或数据框的计算、操作实现自动化对齐。索引类型index的常用方法:
                                                                                                                            重新索引 :能够改变、重排Series和DataFrame索引,会创建一个新对象,如果某个索引值当前不存在,就引入缺失值。    df.reindex(index, columns ,fill_value, method, limit, copy ) :index/columns为新的行列自定义索引;fill_value为用于填充缺失位置的值;method为填充方法,ffill当前值向前填充,bfill向后填充;limit为最大填充量;copy 默认True,生成新的对象,False时,新旧相等不复制。
    删除指定索引 :默认返回的是一个新对象。    .drop() :能够删除Series和DataFrame指定行或列索引。   删除一行或者一列时,用单引号指定索引,删除多行时用列表指定索引。   如果删除的是列索引,需要增加axis=1或axis='columns'作为参数。   增加inplace=True作为参数,可以就地修改对象,不会返回新的对象。   
                                           
   在pandas中,有多个方法可以选取和重新组合数据。对于DataFrame,表5-4进行了总结
                                                                                   
    适用于Series和DataFrame的基本统计分析函数 :传入axis='columns'或axis=1将会按行进行运算。    .describe() :针对各列的多个统计汇总,用统计学指标快速描述数据的概要。    .sum() :计算各列数据的和    .count() :非NaN值的数量    .mean( )/.median() :计算数据的算术平均值、算术中位数    .var()/.std() :计算数据的方差、标准差    .corr()/.cov() :计算相关系数矩阵、协方差矩阵,是通过参数对计算出来的。Series的corr方法用于计算两个Series中重叠的、非NA的、按索引对齐的值的相关系数。DataFrame的corr和cov方法将以DataFrame的形式分别返回完整的相关系数或协方差矩阵。    .corrwith() :利用DataFrame的corrwith方法,可以计算其列或行跟另一个Series或DataFrame之间的相关系数。传入一个Series将会返回一个相关系数值Series(针对各列进行计算),传入一个DataFrame则会计算按列名配对的相关系数。    .min()/.max() :计算数据的最小值、最大值    .diff() :计算一阶差分,对时间序列很有效    .mode() :计算众数,返回频数最高的那(几)个    .mean() :计算均值    .quantile() :计算分位数(0到1)    .isin() :用于判断矢量化集合的成员资格,可用于过滤Series中或DataFrame列中数据的子集    适用于Series的基本统计分析函数,DataFrame[列名]返回的是一个Series类型。     .unique() :返回一个Series中的唯一值组成的数组。    .value_counts() :计算一个Series中各值出现的频率。    .argmin()/.argmax() :计算数据最大值、最小值所在位置的索引位置(自动索引)    .idxmin()/.idxmax() :计算数据最大值、最小值所在位置的索引(自定义索引)
   pandas提供了一些用于将表格型数据读取为DataFrame对象的函数。下表对它们进行了总结,其中read_csv()、read_table()、to_csv()是用得最多的。
                                           
   在数据分析和建模的过程中,相当多的时间要用在数据准备上:加载、清理、转换以及重塑。
   在许多数据分析工作中,缺失数据是经常发生的。对于数值数据,pandas使用浮点值NaN(np.nan)表示缺失数据,也可将缺失值表示为NA(Python内置的None值)。
    替换值     .replace(old, new) :用新的数据替换老的数据,如果希望一次性替换多个值,old和new可以是列表。默认会返回一个新的对象,传入inplace=True可以对现有对象进行就地修改。
    删除重复数据 
    利用函数或字典进行数据转换 
   df.head():查询数据的前五行   df.tail():查询数据的末尾5行   pandas.cut()   pandas.qcut() 基于分位数的离散化函数。基于秩或基于样本分位数将变量离散化为等大小桶。   pandas.date_range() 返回一个时间索引   df.apply() 沿相应轴应用函数   Series.value_counts() 返回不同数据的计数值   df.aggregate()   df.reset_index() 重新设置index,参数drop = True时会丢弃原来的索引,设置新的从0开始的索引。常与groupby()一起用   numpy.zeros()

Python pandas用法

2. 怎么利用pandas做数据分析

Pandas是Python下一个开源数据分析的库,它提供的数据结构DataFrame极大的简化了数据分析过程中一些繁琐操作。
1. 基本使用:创建DataFrame. DataFrame是一张二维的表,大家可以把它想象成一张Excel表单或者Sql表。Excel 2007及其以后的版本的最大行数是1048576,最大列数是16384,超过这个规模的数据Excel就会弹出个框框“此文本包含多行文本,无法放置在一个工作表中”。Pandas处理上千万的数据是易如反掌的sh事情,同时随后我们也将看到它比SQL有更强的表达能力,可以做很多复杂的操作,要写的code也更少。
说了一大堆它的好处,要实际感触还得动手码代码。首要的任务就是创建一个DataFrame,它有几种创建方式:
(1)列表,序列(pandas.Series), numpy.ndarray的字典
二维numpy.ndarray
别的DataFrame
结构化的记录(structured arrays)
(2)其中,二维ndarray创建DataFrame,代码敲得最少:
import pandas as pd
import numpy as np
df = pd.DataFrame(np.random.randn(10, 4))
df
 0 1 2 3
0 0.927474 0.127571 1.655908 0.570818
1 -0.425084 -0.382933 0.468073 -0.862898
2 -1.602712 -0.225793 -0.688641 1.167477
3 -1.771992 -0.692575 -0.693494 -1.063697
4 -0.456724 0.371165 1.883742 -0.344189
5 1.024734 0.647224 1.134449 0.266797
6 1.247507 0.114464 2.271932 -0.682767
7 -0.190627 -0.096997 -0.204778 -0.440155
8 -0.471289 -1.025644 -0.741181 -1.707240
9 -0.172242 0.702187 -1.138795 -0.112005
(3)通过describe方法,可以对df中的数据有个大概的了解:
df.describe()
  0 1 2 3
count 10.000000 10.000000 10.000000 10.000000
mean -0.189096 -0.046133 0.394722 -0.320786
std 1.027134 0.557420 1.258019 0.837497
min -1.771992 -1.025644 -1.138795 -1.707240
25% -0.467648 -0.343648 -0.692281 -0.817865
50% -0.307856 0.008734 0.131648 -0.392172
75% 0.652545 0.310266 1.525543 0.172096
max 1.247507 0.702187 2.271932 1.167477
2. 改变cell。
3. group by。
4. 读写文件。

3. 怎么利用pandas做数据分析

Pandas是Python下一个开源数据分析的库,它提供的数据结构DataFrame极大的简化了数据分析过程中一些繁琐操作。
1. 基本使用:创建DataFrame. DataFrame是一张二维的表,大家可以把它想象成一张Excel表单或者Sql表。Excel 2007及其以后的版本的最大行数是1048576,最大列数是16384,超过这个规模的数据Excel就会弹出个框框“此文本包含多行文本,无法放置在一个工作表中”。Pandas处理上千万的数据是易如反掌的sh事情,同时随后我们也将看到它比SQL有更强的表达能力,可以做很多复杂的操作,要写的code也更少。
说了一大堆它的好处,要实际感触还得动手码代码。首要的任务就是创建一个DataFrame,它有几种创建方式:
(1)列表,序列(pandas.Series), numpy.ndarray的字典
二维numpy.ndarray
别的DataFrame
结构化的记录(structured arrays)
(2)其中,二维ndarray创建DataFrame,代码敲得最少:
import pandas as pd
import numpy as np
df = pd.DataFrame(np.random.randn(10, 4))
df
 0 1 2 3
0 0.927474 0.127571 1.655908 0.570818
1 -0.425084 -0.382933 0.468073 -0.862898
2 -1.602712 -0.225793 -0.688641 1.167477
3 -1.771992 -0.692575 -0.693494 -1.063697
4 -0.456724 0.371165 1.883742 -0.344189
5 1.024734 0.647224 1.134449 0.266797
6 1.247507 0.114464 2.271932 -0.682767
7 -0.190627 -0.096997 -0.204778 -0.440155
8 -0.471289 -1.025644 -0.741181 -1.707240
9 -0.172242 0.702187 -1.138795 -0.112005
(3)通过describe方法,可以对df中的数据有个大概的了解:
df.describe()
  0 1 2 3
count 10.000000 10.000000 10.000000 10.000000
mean -0.189096 -0.046133 0.394722 -0.320786
std 1.027134 0.557420 1.258019 0.837497
min -1.771992 -1.025644 -1.138795 -1.707240
25% -0.467648 -0.343648 -0.692281 -0.817865
50% -0.307856 0.008734 0.131648 -0.392172
75% 0.652545 0.310266 1.525543 0.172096
max 1.247507 0.702187 2.271932 1.167477
2. 改变cell。
3. group by。
4. 读写文件。

怎么利用pandas做数据分析

4. 怎么利用pandas做数据分析

Pandas是Python下一个开源数据分析的库,它提供的数据结构DataFrame极大的简化了数据分析过程中一些繁琐操作。
1. 基本使用:创建DataFrame. DataFrame是一张二维的表,大家可以把它想象成一张Excel表单或者Sql表。Excel 2007及其以后的版本的最大行数是1048576,最大列数是16384,超过这个规模的数据Excel就会弹出个框框“此文本包含多行文本,无法放置在一个工作表中”。Pandas处理上千万的数据是易如反掌的sh事情,同时随后我们也将看到它比SQL有更强的表达能力,可以做很多复杂的操作,要写的code也更少。
说了一大堆它的好处,要实际感触还得动手码代码。首要的任务就是创建一个DataFrame,它有几种创建方式:
(1)列表,序列(pandas.Series), numpy.ndarray的字典
二维numpy.ndarray
别的DataFrame
结构化的记录(structured arrays)
(2)其中,二维ndarray创建DataFrame,代码敲得最少:
import pandas as pd
import numpy as np
df = pd.DataFrame(np.random.randn(10, 4))
df
 0 1 2 3
0 0.927474 0.127571 1.655908 0.570818
1 -0.425084 -0.382933 0.468073 -0.862898
2 -1.602712 -0.225793 -0.688641 1.167477
3 -1.771992 -0.692575 -0.693494 -1.063697
4 -0.456724 0.371165 1.883742 -0.344189
5 1.024734 0.647224 1.134449 0.266797
6 1.247507 0.114464 2.271932 -0.682767
7 -0.190627 -0.096997 -0.204778 -0.440155
8 -0.471289 -1.025644 -0.741181 -1.707240
9 -0.172242 0.702187 -1.138795 -0.112005
(3)通过describe方法,可以对df中的数据有个大概的了解:
df.describe()
  0 1 2 3
count 10.000000 10.000000 10.000000 10.000000
mean -0.189096 -0.046133 0.394722 -0.320786
std 1.027134 0.557420 1.258019 0.837497
min -1.771992 -1.025644 -1.138795 -1.707240
25% -0.467648 -0.343648 -0.692281 -0.817865
50% -0.307856 0.008734 0.131648 -0.392172
75% 0.652545 0.310266 1.525543 0.172096
max 1.247507 0.702187 2.271932 1.167477
2. 改变cell。
3. group by。
4. 读写文件。

5. 深入浅出Pandas--Pandas的数据结构

Pandas提供Series和DataFrame作为数组数据的存储框架,数据进入这两种框架后,我们就可以利用它们提供的强大处理方法进行处理。
                                          
 需要注意的是,Pandas之前支持的三维面板(Panel)结构现已不再支持,可以使用多层索引形式来实现。
  
 Series(系列、数列、序列)是一个带有标签的一维数组,这一系列连续的数据代表了一定的业务意义。如以下各国2019年的GDP就是一个典型的Series。
                                          
 其中,国家是标签(也称索引),不是具体的数据,它起到解释、定位数据的作用。如果没有标签,只有一个数字,是不具有业务意义的。Series是Pandas最基础的数据结构。
  
 DataFrame意为数据框,它就像一个存放数据的架子,有多行多列,每个数据在一个格子里,每个格子有自己的编号。就像一个球场的座位(下图),我们在横向编成1排、2排、3排等,在纵向编成1号、2号、3号等,那么4排18号、6排1号等就是具体的位置,每个人落座后就像一个具体的数据。
                                          
 DataFrame是Pandas定义的一个二维数据结构,其结构如下图
                                          
 我们给上例国家GDP Series数据中增加一列“人口”,形成一个DataFrame
                                          
 在后续的内容中,在不同场景下可能会对索引使用以下名称。
  
 end~

深入浅出Pandas--Pandas的数据结构

6. Pandas入门数据分析01-什么是Pandas


7. Pandas基础

  Pandas 是 Python 语言的一个扩展程序库,用于数据分析。    Pandas 是一个开放源码、BSD 许可的库,提供高性能、易于使用的数据结构和数据分析工具。   Pandas 名字衍生自术语 "panel data"(面板数据)和 "Python data analysis"(Python 数据分析)。   Pandas 一个强大的分析结构化数据的工具集,基础是 Numpy(提供高性能的矩阵运算)。   Pandas 可以从各种文件格式比如 CSV、JSON、SQL、Microsoft Excel 导入数据。   Pandas 可以对各种数据进行运算操作,比如归并、再成形、选择,还有数据清洗和数据加工特征。   Pandas 广泛应用在学术、金融、统计学等各个数据分析领域。

Pandas基础

8. python自带及pandas、numpy数据结构(一)

 1.python自带数据结构:序列(如list)、映射(如字典)、集合(set)。   以下只介绍序列中的list:   创建list:   list1 = []   list1 = [1,2,3,4,5,6,7,8,9]            #逗号隔开   list2 = [[1,2],[3,4],[5,6],[7,8]]          #list2长度(len(list2))为2,list2[0] = [1,2]   liststring = list(“thisisalist”)           #只用于创建字符串列表   索引list:   e = list1[0]                        #下标从零开始,用中括号   分片list:   es = list1[0:3]   es = list1[0:9:2]           #步长在第二个冒号后   list拼接(list1.append(obj)、加运算及乘运算):
   list长度:
   list每个元素乘一个数值:   list2 = numpy.dot(list2,2)   list类似矩阵相乘(每个元素对应相乘取和):   list3 = numpy.dot(list1,list1)   #要求相乘的两个list长度相同   list3 = numpy.dot(list2,list22)   #要求numpy.shape(list2)和numpy.shape(list22)满足“左行等于右列”的矩阵相乘条件,相乘结果numpy.shape(list3)满足“左列右行”
   2.numpy数据结构:
   Array:   产生array:   data=np.array([[1, 9, 6], [2, 8, 5], [3, 7, 4]])   data=np.array(list1)   data1 = np.zeros(5)         #data1.shape = (5,),5列   data1 = np.eye(5)   索引array:   datacut = data[0,2]         #取第零行第二列,此处是6   切片array:   datacut = data[0:2,2]       # array([6, 5])   array长度:   data.shape   data.size   np.shape(data)   np.size(data)   len(data)   array拼接:   #括号内也有一个括号(中括号或者小括号)!   d = np.concatenate((data,data))   d = np.concatenate((data,data),axis = 1)          #对应行拼接   array加法:逐个相加   array乘法:   d = data data               #逐个相乘   d = np.dot(data,data)       #矩阵相乘   d = data 3              #每个元素乘3   d = np.dot(data,3)          #每个元素乘3   array矩阵运算:   取逆 : np.linalg.inv(data)   转置:data.T   所有元素求和 : np.sum(data)   生成随机数:np.random.normal(loc=0, scale=10, size=None)   生成标准正态分布随机数组:np.random.normal(size=(4,4))   生成二维随机数组:   np.random.multivariate_normal([0,0],np.eye(2))   生成范围在0到1之间的随机矩阵(M,N):   np.random.randint(0,2,(M,N))
   Matrix:   创建matrix:   mat1 = np.mat([[1, 2, 3], [4, 5, 6]])   mat1 = np.mat(list)   mat1 = np.mat(data)   matrix是二维的,所有+,-,*都是矩阵操作。   matrix索引和分列:   mat1[0:2,1]   matrix转置:   np.transpose(mat1)   mat1.transpose()   matrix拼接:   np.concatenate([mat1,mat1])   np.concatenate([mat1,mat1],axis = 1)
   numpy数据结构总结:对于numpy中的数据结构的操作方法基本相同:   创建:np.mat(list),np.array(list)   矩阵乘:np.dot(x,y)   转置:x.T or np.transpose(x)   拼接:np.concatenate([x,y],axis = 1)   索引:mat[0:1,4],ary[0:1,4]
   3.pandas数据结构:   Series:   创建series:   s = pd.Series([[1,2,3],[4,5,6]],index = [‘a’,‘b’])   索引series:   s1 = s[‘b’]   拼接series:   pd.concat([s1,s1],axis = 1)     #也可使用s.append(s)
   DataFrame:   创建DaraFrame:   df = pd.DataFrame([[1,2,3],[1,2,3]],index = ['a','b'],columns = ['x','y','z'])   df取某一列:   dfc1 =df.x   dfc1 = df[‘x’]   dfc2 = df.iloc[:,0] #用.iloc方括号里是数字而不是column名!   dfc2 = df.iloc[:,0:3]   df取某一行:   dfr1 = df.iloc[0]   df1 = df.iloc[0:2]   df1 = df[0:2]       #这种方法只能用于取一个区间   df取某个值:   dfc2 = df.iloc[0,0]   dfc2 = df.iloc[0:2,0:3]
最新文章
热门文章
推荐阅读