Pandas02--pandas基础

本文介绍了Pandas的基础知识,包括文件创建、读取,如Series和DataFrame数据结构,常用基本函数如汇总函数、统计函数、排序及应用方法。详细讲解了文件读取的参数设置,如何进行数据转换,以及数据排序、替换和窗口对象的操作,如滑动窗口和扩张窗口的使用。还提供了实际操作示例,帮助读者深入理解Pandas的操作。
摘要由CSDN通过智能技术生成


1 文件的创建

  • 可创建的文件类型

    数据类型 说明 新建方法
    csv、tsv、txt 用逗号、tab分割的纯文本文件 pd.to_csv(路径)
    excel xls或xlsx pd.to_excel(路径)
    sql 关系数据库表 pd.to_sql(路径)
  • 【例子1】新建文件并导入数据

    import pandas as pd
    path = 'd:/新建文件.xlsx' # 文件创建的路径
    # 文件中要输入的数据,excel表格用字典,以键值对的形式
    value = {
         '序号':[1,2,3],'姓名':['张三','李四','王五']} 
    # DATaFrame指二维数据表,可能用的series指一维数据(可行可列),不是一维数组
    data=pd.DataFrame(value) # DataFrame()中也可没数据,那就是创建一个空的
    data.to_excel(path) # 将数据写入创建的文件中
    

在这里插入图片描述

注意:第一列的序号是索引,它不索引列名

  • 【例子2】将序号设为索引
    import pandas as pd
    path = 'd:/新建文件.xlsx' 
    value = {
         '序号':[1,2,3],'姓名':['张三','李四','王五']} 
    data=pd.DataFrame(value)
    data=data.set_index('序号') # 将序号设置为索引
    data.to_excel(path) 
    

在这里插入图片描述


2 文件读取

2.1 文件读取

  • 文件的读取:

    数据类型 说明 读取方法
    csv、tsv、txt 默认用逗号分隔 pd.read_csv(路径)
    csv、tsv、txt 默认用\t分隔 pd.read_table(路径)
    excel xls或xlsx pd.read_excel(路径)
    sql 关系数据库表 pd.read_sql(路径)
  • 文件的查看:

    • 查看数据的形状,返回(行数,列数):print(读取数据.shape)
    • 查看数据内容:print(读取数据.values)
    • 查看列名列表:print(读取数据.columns)
    • 查看索引列:print(读取数据.index)
    • 查看每一列数据类型:print(读取数据.dtypes)
  • 读取csv/tsv/txt/excel文件的公共参数:

    参数 描述
    header 列名的行号,默认0(第一行),没有列名为header=None
    names 自定义的表头,与header=None一起使用
    index_col 把哪几列作为索引,可以是列名或列号
    usecols 读取列的集合,默认读取所有列
    skipcrows 从文件开始处,需要跳过的行数或行号列表
    encoding 文本编码,常用utf-8
    nrows 从文件开头读入的行数
    parse_dates 需要转化为时间的列

    【例子1】自定义表头,并读取前两列、前三行的数据

    a=pd.read_table('data/my_table.txt', header=None,names=['a','b','c','d'],usecols=['a','b'],nrows=3)
    print(a)
    /*
          a     b
    0  col1  col2
    1     2     a
    2     3     b
    */
    

    【例子2】将col1和col3作为索引

    b=pd.read_table('data/my_table.txt',index_col=['col1','col3'])
    print(b)
    /*
             col2             col4
    col1 col3                      
    2    1.4     a   apple 2020/1/1
    3    3.4     b  banana 2020/1/2
    6    2.5     c  orange 2020/1/5
    5    3.2     d   lemon 2020/1/7
    */
       ```
    
    
  • 读取txt/csv/tsv文件:
    当遇到分隔符不是逗号和\t时,可以使用sep参数,来自定义分隔符。
    【例子】

    import pandas as pd
    a=pd.read_table('data/my_table_special_sep.txt',sep='\|\|\|\|',engine='python',index=Flase)
    print(a)
    /*
     	col1                 col2
    0   TS    This is an apple.
    1   GQ      My name is Bob.
    2   WT           Well done!
    3   PT      May I help you?
    */
       ```
    

注意:sep中使用的是正则表达式,同时需要指定引擎为 python 。

2.2 文件转换

  • txt文件转csv文件
    特别当索引没有特殊意义的时候,在保存的时候index设置为 False
    转换方法:
    数据=pd.read_csv('文件路径.txt')
    数据.to_csv('文件路径.csv',index=False)
    
  • 表格转markdown和latex:以使用to_markdownto_latex 函数,此处需要安装tabulate包。
    【例子】rint(df_csv.to_markdown())

3 基本数据结构

pandas 中具有两种基本的数据存储结构,存储一维 valuesSeries 和存储二维valuesDataFrame

3.1 Series

  • 含义:一维数据,一行或一列数据
  • 常用参数:序列的值:data,索引:index ,存储类型:dtype,序列的名字: name
    【例子】
    a=pd.Series(data=[1,'b',{
         'c':2}],
        index=[0,1,2],
    	dtype='object',
        name='my_name')
    print(a)
    /*
    0           1
    1           b
    2    {
         'c': 2}
    Name: my_name, dtype: object
    */
    

    注意:object 代表了一种混合类型,目前 pandas 把纯字符串序列也默认认为是一种 object 类型的序列,但它也可以用 string 类型存储。

  • 常用查询方法:
    • 数据.index:查看索引 # Index(['id1', 20, 'third'], dtype='object', name='my_idx')
    • 数据.values:查看索引 # array([100, 'a', {'dic1': 5}], dtype=object)
    • 数据.isnull():查看索引
    • 数据.notnull():查看索引
    • 数据.sort_index():按索引排序
    • 数据.sort_values():按数值排序

3.2 DataFrame

  • 含义:两维数据,多行多列,由多个series构成,在 Series 的基础上增加了列索引
  • 特点:既有行索引index,也有列索引columns
  • 使用方法:
    • 1 二维数据与行列索引:
    data = [[0, 'a', 1.0], [1, 'b', 2.1], [2, 'c', 3.2]]
    df=pd.DataFrame(data=data,
                	index=['row_%d'%i for i in range(3)],
                	columns=['col_0','col_1','col_2'])
    print(df)
    /*
     		col_0 col_1  col_2
    row_0      0     a    1.0
    row_1      1     b    2.1
    row_2      2     c    3.
    */
    
    • 2 从列索引名 到数据的映射来构造数据框,同时再加上行索引:
    dir={
         
    	'姓名':['张三','李四','王五'],
    	'年龄':[1,2,3],
    	'性别':['男','女','女']
    	}
    df=pd.DataFrame(data=dir,
                	index=['row_%d'%i for i in range(3)])
    print(df)
    print(df['姓名']) # 取出相应列,Series
    print(df[['姓名','年龄']]) # 取出多个列构成的表,DataFrame
    /*
           姓名  年龄 性别
    row_0  张三   1  男
    row_1  李四   2  女
    row_2  王五   3  女
    
    row_0    张三
    row_1    李四
    row_2    王五
    Name: 姓名, dtype: objec
    
           姓名  年龄
    row_0  张三   1
    row_1  李四   2
    row_2  王五   3
    */
    

注意:在DataFrame中可以用[col_name][col_list] 来取出相应的列与由多个列组成的表,结果分别为SeriesDataFrame.


3 常用基本函数

3.1 汇总函数

  • head(),tail():表示返回表或者序列的前 n 行和后 n 行,其中 n 默认为5。
  • info(),describe():返回表的 信息概况 和表中 数值列对应的主要统计量

注意:info, describe 只能实现较少信息的展示

3.2 特征统计函数

  • 常见的函数():sum,mean(平均值),median(中值),var(方差),std(均方差),max,min
  • quantile(),count(),idxmax():分别返回分位数、非缺失值个数、最大值对应索引。(分位数指将一个随机变量的概率分布范围分为几个等份的数值点)
    【例子】
    path='data/learn_pandas.csv'
    df=pd.read_csv(path)
    df_demo = df[['Height', 
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值