初识数据分析01——Pandas入门

  • 导入 Pandas 与 NumPy:
In [1]: import numpy as np

In [2]: import pandas as pd
  • 载入数据
pd.read_csv()
  • 分块读取
pd.read_csv('train.csv', chunksize=1000)
  • 查看数据的基本信息
df.info()
  • 判断数据是否为空,为空的地方返回True,其余地方返回False
df.isnull().

  • 保存数据
df.to_csv()

Pandas Series 类似表格中的一个列(column),类似于一维数组,可以保存任何数据类型。

Series 由索引(index)和列组成,函数如下:

pandas.Series( data, index, dtype, name, copy)

参数说明:

  • data:一组数据(ndarray 类型)。
  • index:数据索引标签,如果不指定,默认从 0 开始。
  • dtype:数据类型,默认会自己判断。
  • name:设置名称。
  • copy:拷贝数据,默认为 False。

DataFrame 是一个表格型的数据结构,它含有一组有序的列,每列可以是不同的值类型(数值、字符串、布尔型值)。DataFrame 既有行索引也有列索引,它可以被看做由 Series 组成的字典(共同用一个索引)。

DataFrame 构造方法如下:

pandas.DataFrame( data, index, columns, dtype, copy)

参数说明:

  • data:一组数据(ndarray、series, map, lists, dict 等类型)。
  • index:索引值,或者可以称为行标签。
  • columns:列标签,默认为 RangeIndex (0, 1, 2, …, n) 。
  • dtype:数据类型。
  • copy:拷贝数据,默认为 False。
pd.DataFrame(np.arange(8).reshape((2,4)),index=[2,1],columns=['d', 'a', 'b', 'c'])

frame2 = pd.DataFrame([[1.4, np.nan],
                       [7.1, -4.5],
                       [np.nan, np.nan],
                       [0.75, -1.3]
                      ], index=['a', 'b', 'c', 'd'], columns=['one', 'two'])
frame2

【代码解析】
pd.DataFrame() :创建一个DataFrame对象
np.arange(8).reshape((2, 4)) : 生成一个二维数组(2*4),第一列:0,1,2,3 第二列:4,5,6,7
index=[‘2, 1] :DataFrame 对象的索引列
columns=[‘d’, ‘a’, ‘b’, ‘c’] :DataFrame 对象的索引行

两个DataFrame相加后,会返回一个新的DataFrame,对应的行和列的值会相加,没有对应的会变成空值NaN

假定有数据集df,格式为dataframe,现想获取其列名

  • df.columns:返回的是array格式。
  • list(df) :返回list格式,非常方便
  • df.keys()

  • 查看某一列唯一值

dataframe['xxx'].unique()
  • 查看某一列所有值(例:查看”Cabin”这列的所有值)
df['Cabin'].head(3)
df.Cabin.head(3)
  • drop
DataFrame.drop(labels=None, axis=0, index=None, columns=None, level=None, inplace=False, errors='raise')

参数解释:

如果想要完全的删除你的数据结构,使用inplace=True,因为使用inplace就将原数据覆盖了,

df.drop(['B', 'C'], axis=1)

df.drop(columns=['B', 'C'])

df.drop(labels=['B', 'C'], axis=1)
  • del

例:删除test中的a列

del test['a']
df[df.A==100]
df[df["Age"]<10]
df[(df.A==100)&(df.B=='a')]

df[(df.A==100)|(df.B=='b')]

reset_index()

不想保留原来的index,使用参数 drop=True,默认 False。

loc[]基于标签索引选取数据.iloc[]基于整数索引选取数据

  • .sort_values()

使用 .sort_values(),将单个参数传递给包含要作为排序依据的列的名称的方法。

DataFrame.sort_values(by=’##’, axis=0, ascending=True, inplace=False, na_position=’last’)

参数
by – 指定列名(axis=0或者’index’)或索引值(axis=1或者’columns’)
axis – 按行、按列,默认axis=0按指定列排序
ascending – 是否升序 默认为True
inplace – 是否修改原对象
kind – 排序算法 快排quicksort、归并mergesort、堆排序heapsort、稳定排序stable,默认快排
na_position – {‘first’, ‘last’} 设定缺失值的显示位置
ignore_index – 排序后是否重置索引
key – 排序之前使用的函数 (version 1.1.0 后才有该参数)

  • 其他排序方式

frame.sort_index()

frame.sort_index(axis=1)

frame.sort_index(axis=1, ascending=False)

frame.sort_values(by=['a', 'c'], ascending=False)
DataFrame.describe(percentiles=None, include=None, exclude=None)

参数
percentiles:赋值类似列表形式,可选
表示百分位数,介于0和1之间。默认值为 [.25,.5,.75],分别返回第25,第50和第75百分位数。 可自定义其它值,用法为df.describe(percentiles=[.xx])。
include:’all’,类似于dtypes列表或None(默认值),可选
要包含在结果中的数据类型的白名单。对于 Series不可用。以下是选项:
‘all’:输入的所有列都将包含在输出中。
类似于dtypes的列表:将结果限制为提供的数据类型。将结果限制为数字类型用法: numpy.number。要将其限制为对象列用法: numpy.object。字符串也可以以 select_dtypes(例如 df.describe(include=['O']))的方式使用。要选择分类类型,请使用 'category'
无(默认):结果将包括所有数字列。
exclude:类似于dtypes列表或None(默认值),可选,
要从结果中除去的黑名单数据类型列表。 Series不可用。以下是选项:
类似于dtypes的列表:从结果中排除提供的数据类型。排除数值类型用法: numpy.number。要排除对象列,使用 numpy.object。字符串也可以以 select_dtypes(例如 df.describe(include=['O']))的方式使用。要排除分类类型,请使用 'category'
无(默认):结果将不包含任何内容。

count : 样本数据大小
mean : 样本数据的平均值
std : 样本数据的标准差
min : 样本数据的最小值
25% : 样本数据25%的时候的值
50% : 样本数据50%的时候的值
75% : 样本数据75%的时候的值
max : 样本数据的最大值

Original: https://blog.csdn.net/weixin_64632836/article/details/126343485
Author: 上烟雨心上尘
Title: 初识数据分析01——Pandas入门

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/743619/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

  • Django与Vue的前后端交互

    目录 需求 使用技术 代码实现 重难点 需求 前端输入一个用户名,点击查询用户信息,并显示;若用户不存在,则显示用户不存在表设计user_table表字段:username; va…

    Python 2023年8月5日
    054
  • 备战数学建模28 & 科研必备 Python之数据处理神器pandas

    目录 1-series和读取外部数据 2-pandas的DataFrame 3-统计方法和字符串离散化 4-数据的合并和分组聚合 1-series和读取外部数据 我们知道在pyth…

    Python 2023年8月20日
    065
  • 最强面试题整理第三弹:Python 后台开发面试题(附答案)

    大家好呀,我是 Rocky0429。 Python 面试的时候,会涉及到很多的八股文,我结合自己的经验,整理 Python 最强面试题。 Python 最强面试题主要包括以下几方面…

    Python 2023年8月12日
    075
  • AOP实现系统告警

    工作群里的消息怕过于安静,又怕过于频繁 一、业务背景 在开发的过程中会遇到各种各样的开发问题,服务器宕机、网络抖动、代码本身的bug等等。针对代码的bug,我们可以提前预支,通过发…

    Python 2023年10月21日
    047
  • dataframe 列 去重_Pandas —— (6)多个DataFrame的合并、连接、去重、替换

    @pd.merge(left, right, how=’inner’, on=None, left_on=None, right_on=None,left_…

    Python 2023年8月18日
    072
  • Python 全栈系列141 Supervisor微服务一键部署

    说明 随着启动的服务越来越多,监控服务稳定性的事变的多了起来。与其时不时的去看一看,还不如启动一个微服务进行定时轮询。未来会有两种轮询途径: 1 提交接口请求,从返回的数据分析。 …

    Python 2023年8月12日
    069
  • 科学计算Python库:Numpy入门

    目录 前言 安装 导入 创建numpy数组 * 1、转换 (Python列表和元组) 2、 NumPy 内置创建函数 – arange zeros ones rando…

    Python 2023年8月27日
    051
  • 「python」快速入门Scrapy框架的5个执行模组及架构——第一篇

    一般想要自动化搜集网页上的资料时,普遍都会使用像BeautifulSoup或Selenium套件开发Python网页爬虫来取得,但是,如果所要爬取的资料量较大,拥有复杂的逻辑处理及…

    Python 2023年10月6日
    045
  • 在jupyter notebook中添加conda环境

    安装好annaconda后,在annaconda中创建了名为pytorch的conda环境。但是jupyter默认安装在C盘,每次打开创建的文件都默认在C盘,想在其他盘符(例如F)…

    Python 2023年9月8日
    061
  • pytest-assert断言

    pytest使用python自带的assert关键字来进行断言 在python中,断言语句 assert后面跟任何合法的表达式,assert语句做出一个判断,如果结果为true,则…

    Python 2023年9月9日
    042
  • 第六章:django中的cookie与session

    系列文章目录 第一章 :Django安装与配置虚拟环境 第二章:django各模块的作用以及参数说明 第三章: Django的路由与视图 第四章:django请求 第五章:djan…

    Python 2023年8月4日
    038
  • 数值优化:经典随机优化算法及其收敛性与复杂度分析

    1 随机优化算法概述 随着大数据的出现,确定性优化算法的效率逐渐称为瓶颈。为了说明这一点,我们来看一个用梯度下降法求解线性回归的例子。 给定训练样本(D = {(x_i, y_i)…

    Python 2023年10月29日
    057
  • 04. Pandas查询数据

    今天没有漂亮的PPT,只有干货!! Pandas查询数据的几种方法 .loc既能查询,又能覆盖写入,强烈推荐! Pandas使用df.loc查询数据的方法 以上查询方法,既适用于行…

    Python 2023年8月22日
    052
  • 基于flask+mysql的学生管理系统简单开发(1)-登录

    今天来讲一下基于flask的学生管理系统简单开发系列之登录 首先我们在pycharm新建一个叫website的项目 你可以让编译器自动帮你建一个虚拟环境venv 使用的前端模板为j…

    Python 2023年8月15日
    090
  • 新项目决定用 JDK 17了

    大家好,我是风筝,公众号「古时的风筝」,专注于 Java技术 及周边生态。 文章会收录在JavaNewBee 中,更有 Java 后端知识图谱,从小白到大牛要走的路都在里面。 最近…

    Python 2023年10月11日
    064
  • 可交互绘图-Plotly

    欢迎关注笔者的微信公众号 Plotly 是一个 Python 库,用于设计图形,尤其是交互式图形。它可以绘制各种图形和图表,如直方图、条形图、箱线图、展开图等等。它主要用于数据分析…

    Python 2023年9月6日
    057
亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球