首页 > 编程语言 >Python数据分析常用开源库 pycharm

Python数据分析常用开源库 pycharm

时间:2024-06-07 11:59:17浏览次数:17  
标签:False Python Series DataFrame 索引 开源 df pycharm 数据

内容介绍

  • Pandas

    • 数据处理的库, 可以做可视化

    • 文件类数据交互的是比较好的 CSV Excel

  • 环境搭建起来

  • Series DataFrame

  • 前3天 主要介绍DataFrame的使用 (Pandas的API)

  • 第四天 数据可视化

day05 ~ day08

  • Pandas 解决数据分析问题

    • 报表, 取数 (SQL, Pandas,Excel)

    • 业务分析能力, 应用数据分析的模型 规则模型, 分析套路

      • RFM

      • AARRR

      • 同期群分析

      • 漏斗分析

    • 数据分析报告

    • 数据异常波动原因的分析

    • AB测试

1 数据分析常用开源库

Pandas

  • 基于Numpy - 特点高效的科学计算库, 核心的数据对象 是 ndarray n维数组

  • Series 一列数据

  • DataFrame 二维表

绘图的库最基础的 Matplotlib

  • Pandas 有绘图的API 基于 Matplotlib

  • Seaborn 基于 Matplotlib

2 Notebook的使用

在控制台启动 anaconda prompt

jupyter notebook

在Pycharm中使用 给项目添加Python解释器, 使用conda enviroment

在项目的目录下新建一个Notebook

启动之后可能遇见的问题

弹窗口, jupyter进程直接杀死, 报错是bad file descriptor

  • 是pyzmq包的问题, 把它卸载掉, 再重装一下就好了

  • pip uninstall pyzmq

  • pip install pyzmq

3 Pandas 数据结构

3.1 Series的创建

pd.Series()

  • S大写

  • 传入一个、两个参数

  • 第一个参数就是数据, 也可以通过index = 指定行索引

  • 如果不指定行索引, 会默认添加从0开始的索引

传入的数据可以是以下类型

  • numpy的ndarray

  • python 列表,元组,字典

    • 传入的如果是字典, 字典的key作为索引, Value就是数据

一列Series数据类型必须一致的

  • 如果既有字符串, 又有数字, 会是字符串类型 Object

3.2 Series属性

s.shape # 形状 描述series有几行 返回一个元组
s.values # Series的值 默认ndarray类型
s.index  # Series的索引, 如果手动指定, 就是一个ndarray类型, 如果是自动生成 rangeIndex()

3.3 Series的常用方法

  • head()

  • tail()

  • to_list() # 转换成列表

  • to_frame() #转换成DF

  • describe() # 加载数据之后, 首先可以先head() 再 describe 看数据的分布情况

    • count()

    • std() # 标准差 方差 = ∑(一列数据的每一个值- 均值)²/M 标准差 = 方差开根号 反映了数据的离散程度

    • mean()

    • min()

    • max()

    • 计算了三个分位数( 25% 50% 75%)

      • 50% 中位数

  • 对数据进行修改的方法, 99%都有一个共同的参数 inplace 默认值是False

    • 修改数据的API默认不会再原始的数据上进行修改, 而是会在副本上进行修改, 并且会把这个修改后的副本作为方法的返回值, 返回来

    • 如果inplace 修改为True 就会在原始的数据上进行修改, 此时这个方法没有返回

    • 去重 drop_duplicates

    • 排序 sort_values()

      • 参数 ascending=False 降序排列
  • unique() 返回唯一值的列表

  • s1.value_counts() 相当于分组计数, 统计每个取值出现的次数, 默认会按照取值多少做降序排列

3.4 布尔索引(布尔值列表做数据筛选)

加载数据之后, 要取出年龄大于平均年龄的人名

df['Name'][df['Age']>df['Age'].mean()]
- DataFrame 可以看作是由Series组成的列表, df[列名] 类似于 列表通过下标取值
- df['Name'][由布尔值组成的列表/Series] 这种写法类似于SQL的where条件
需要注意  df['Age']>df['Age'].mean() 长度 要跟 df['Name']长度一致, 否则会报错

3.5 Series的运算

  • Series和一个值进行计算

    • 数值类型 做加减乘除, Series中的每一个元素都跟这个值做加减乘除, 不需要写循环

    • 字符串类型 可以和数值做乘法, 相当于复制, 乘以2 复制一份

  • 两个Series之间进行计算,根据行索引进行对齐

    • 如果两行行索引一样, 就可以在一起计算

    • 如果两行行索引不一样,不能在一起算, 如果一个Series里有的行索引, 另一个Series没有, 返回NaN

  • Series做各种计算

3.6 DataFrame的创建和常用属性

pd.DataFrame()

  • 可以传入字典 {‘列名’:[值1,值2, 值3],‘列名2’:[值1,值2, 值3]}

  • 也可以传入列表套列表,列表套元组

    • data = [[],[], []]

  • 创建df的时候, 可以通过index 指定行索引 columns指定列名

常用属性

  • shape (行数,列数)

  • index 行索引

  • values 值, ndarray(注意 pandas2.0以后, 底层调用的运算库,可以不是numpy了, 可以选择pyarrow)

  • columns 列

3.7 DataFrame的常用方法

df.info()

  • 加载数据之后, 做具体的业务处理之前, 一般固定的套路

    • head() 看数据长什么样

    • info() 字段有哪些, 有没有空值, 每个字段的数据类型

    • describe() 数据的分布 默认会展示数值类型的统计量

      • include = object 显示字符串类型的分布情况

      • count 计数,unique 唯一值的数量, top出现次数最多的字符串是啥 freq 出现次数最多的字符串出现的频率(次数)

df.head()/tail()

df.min()算最小/df.max()算最大/df.mean()取平均/df.count() 计数

3.8 DataFrame的布尔索引取部分值

  • 使用方法和Series是一样的, 只不过在条件前面的对象是一个dataframe

  • 如果要使用多个条件进行筛选,按照下面方法写

df_sci[(df_sci['Age']>df_sci['Age'].mean()) | (df_sci['Occupation']=='Chemist')]

多个条件,同时计算, 每个条件都要用()括起来

多个条件之间,要用位运算的符号 同时满足 & 满足一个就可以 |

& 对应的还有and 运算符 | 对应or 如果是两个Series之间进行计算, 要用位运算 & | 不能用 and or

(df_sci['Age']>df_sci['Age'].mean()) or (df_sci['Occupation']=='Chemist')

报错

ValueError: The truth value of a Series is ambiguous. Use a.empty, a.bool(), a.item(), a.any() or a.all().

and or 只能在一个True、False 和 另一个True/False之间进行计算

3.9 DataFrame之间的计算

  • 和Series之间的计算 没有区别, 参见series的计算

4 读取保存Excel和CSV文件

读取文件的API pd.read_XXX XXX→ 文件格式 excel , csv, json,sql

保存文件的API df.to_XXX XXX→ 文件格式 excel , csv, json,sql

to_excel

df.to_excel('test3.xlsx',sheet_name='student',index=False,header=False)
# 第一个参数路径  sheet_name 表格下边工作簿的名字   index=False(默认是True) 不保存行索引  header=False(默认是True) 不保存列名

to_csv

  • 参数基本跟excel一样, 没有sheet_name

  • 特殊的参数 sep 分隔符, 默认是逗号, 可以修改成其它的比如

df.to_csv('test3.csv',index=False,sep='\t')
# '\t'制表符作为分隔符
# 加载数据的时候, 也要指定对应的分隔符
pd.read_csv('test3.csv',sep='\t')

标签:False,Python,Series,DataFrame,索引,开源,df,pycharm,数据
From: https://blog.csdn.net/m0_62008384/article/details/139523363

相关文章

  • 大模型微调实战:精通、指令微调、开源大模型微调、对齐与垂直领域应用
    大模型微调实战:精通、指令微调、开源大模型微调、对齐与垂直领域应用一、引言随着人工智能技术的迅猛发展,大模型在多个领域展现出强大的能力。然而,如何有效地对大模型进行微调以适应特定任务和场景,成为了研究者和开发者关注的焦点。本文将深入探讨大模型微调实战营中的关键内容,......
  • PyCharm的安装
    PyCharm的安装PyCharm是一款由JetBrains公司开发的强大的Python集成开发环境(IDE),它提供了代码分析、图形化调试器、集成单元测试、版本控制等功能,极大地提高了Python开发者的工作效率。以下是PyCharm社区版的详细安装步骤。一、下载PyCharm安装包首先,我们需要访问PyCharm的官方......
  • python各种加解密方法
    #-*-encoding:utf-8-*-fromhashlibimportmd5importbase64#MD5加密obj=md5()str="你是个小可爱"obj.update(str.encode("utf-8"))#obj.update("wusir".encode('utf-8'))#可以添加多个被加密的内容bs=obj.hexdigest()print("md5......
  • 8-4 【Python0036】中文级联菜单
    importtkinterastkfromtkinterimportttkfrompypinyinimportlazy_pinyin#省份、城市、地区数据data={"北京":{"北京市":["东城区","西城区","朝阳区"],},"上海":{"上海市......
  • 用 Python 撸一个 Web 服务器-第9章:项目总结
    项目总结本教程带大家一起实现了一个TodoList程序,包含基础的增删改查功能,和用户登录认证。这也是Web开发中最常见的需求。我画了一张思维导图,帮助你从宏观的角度来概览TodoList程序,加深你对Web开发的理解。TodoList项目整体思路参考MVC设计模式。有意设计utils......
  • 用 Python 撸一个 Web 服务器-第8章:用户管理
    用户登录原理用户登录与注册功能几乎已成为Web应用的标配。所以我们有必要给TodoList程序增加一个用户管理模块,以此来学习用户登录原理。HTTP协议是无状态的,这意味着每个完整的HTTP请求——响应过程都是相对独立的,Web服务器无法分辨前后两次连续请求是否为同一个用户......
  • 用 Python 撸一个 Web 服务器-第7章:重构——更好的组织代码
    通过前几章的学习,我们完成了TodoList程序的todo管理部分,实现了对todo的增、删、改、查基本操作,这也是几乎所有Web程序都具备的功能。我们当然可以按照目前的思路继续来实现用户管理部分,在models.py中编写用户相关的模型,在templates/目录下新建用户相关HTML,在contro......
  • 【已解决】Python报错Pytorch:ModuleNotFoundError: No module named ‘torch’
    本文摘要:本文已解决Pytorch:ModuleNotFoundError:Nomodulenamed‘torch’的相关报错问题,并总结提出了几种可用解决方案。同时结合人工智能GPT排除可能得隐患及错误。......
  • 【已解决】Python报错 ERROR: Could not find a version that satisfies the requirem
    本文摘要:本文已解决ERROR:Couldnotfindaversionthatsatisfiestherequirement的相关报错问题,并总结提出了几种可用解决方案。同时结合人工智能GPT排除可能得隐患及错误。......
  • Python进阶:解密collections库的高级功能
    Python内置库collections提供了一些强大的工具类,可以简化和优化我们的编程过程。本文将重点探索collections库中的几个类的使用。通过详细的代码示例和解释,展示如何利用Counter计数和统计元素,以及如何使用defaultdict创建有默认值的字典。一、常见类的介绍Pythoncollections......