Pandas学习

本文详细介绍了Pandas库的学习内容,包括显示设置、Series和DataFrame的操作,如读取数据、Nan值处理、数据合并、透视表、数据清洗、统计分析、图表绘制等,以及各种实用方法如drop_duplicates、corr、pivot_table等。
摘要由CSDN通过智能技术生成

一、pandas显示设置

import pandas as pd
pd.options.display.max_rows=999  # 设置显示所有行,默认为60行
pd.set_option('display.max_columns', None)  # 显示所有列
pd.set_option('display.min_rows', None)  # 显示所有行
pd.set_option('max_colwidth', 100)  # 设置value的显示长度为100,默认为50

二、pandas拥有的方法

  • Series
    • pd.Series({'a': 1, 'b':2})  # 返回一个Series数据
  • DataFrame
    • pd.DataFrame({'列名1': '列值1', '列名2': '列值2'}, index=[0])  # 生成DataFrame数据, 字典入参时必须设置index

  • pandas读数据的方法

    • '''
      on_bad_lines和error_bad_lines都是跳过错误的行,error将来的版本会舍弃
      sep='\t'设置分隔符, encoding='utf-8'设置编码格式, header='infer'默认, 选取数据的第一行为列名
      header=1设置第二行为列名, names设置列名, index_col指定某列为行索引, set_index也可以设置行索引
      usecols指定读取的字段, prefix给列名加前缀, squeeze=True表示只读取一列时返回Series数据
      dtype={'id': str}设置id列为字符串类型, skiprows过滤行(可以是lambda函数), true_values|false_values新增result列, skip_blank_lines跳过空白行
      parse_dates指定某些列为时间类型, date_parser转化时间格式,配合parse_dates使用
      '''
      pd.read_csv('data.csv', on_bad_lines='skip', error_bad_lines=False)
      
      '''
      读取excel文件
      sheet_name选择子表sheet,默认是0,None返回全部sheet的字典,str:sheet名字, int: 第几个sheet,list: [0, 'sheet名']返回字典
      header指定第几行为列索引, index_col指定某列为行索引
      na_values: 0, '空值', ['空值', 0], {'列名': ['空值', 0]}
      converters={'a': lambda x: x+1} 值转换函数
      '''
      pd.read_excel('data.xlsx')
      
      '''
      io=url, header=0使用第一行作为列索引
      match字符串或编译的正则表达式,默认值返回页面上包含的所有<table>标签的内容
      flavor要使用的解析引擎,lxml、bs4和html5lib
      '''
      pd.read_html('data.html')
      
      '''
      
      '''
      pd.read_json('data.json')
      
      '''
      xpath正则表达式
      '''
      pd.read_xml('data.xml', xpath='正则表达式')
      
      '''
      sql:sql语句,con:连接sql数据的engine,chunksize:如果提供了一个整数值,会返回一个generator,每次输出的行数就是提供的值的大小
      '''
      pd.read_sql(sql, conn)
  • isna判断是否为Nan值

    • df = pd.DataFrame(['a', None, 'b', 'c', None])  # 判断是否为Nan值
      pd.isna(df)

      `

  • date_range

    • pd.date_range('2022-10-06', periods=6)  # 返回datetime数据默认为天, freq='D|M|Y'

  • concat合并多个DataFrame数据

    • '''
      ignore_index重新排列索引, 默认为False
      axis默认为0,按行合并,axis=1为按列合并
      join默认为outer,
      '''
      pd.concat([a, b])  # 默认索引还是原有的
      pd.concat([a, b], ignore_index=True)  # 索引重新排列
      pd.concat([a, b], axis=1)  # 按列合并

  • join合并数据, 要求没有重叠的列

    • left = pd.DataFrame({'a': list('abcd'), 'b': list('efgh')})
      right = pd.DataFrame({'c': list('ijkl'), 'd': list('mnpq')})
      left.join(right, how='outer')

  • merge合并数据

    • '''
      on='key'按那一列合并,必须在要合并的对象中存在
      left_on按左边的列或索引级别用作合并键
      right_on按右边的列或索引级别用作合并键
      left_index若为True,左侧的索引为连接 键
      right_index和left_index同理
      how默认内连接inner, 外连接为outer
      '''
      dt1 = pd.DataFrame({'key': ['b', 'c'], 'dt1': range(2)})
      dt2 = pd.DataFrame({'key': list('abd'), 'dt2': range(3)})
      pd.merge(dt1, dt2, on='key')
      pd.merge(dt1, dt2, on='key', how='outer')

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值