虽然pandas采用了大量的NumPy编码风格,但二者最大的不同是pandas是专门为处理表格和混杂数据设计的。而NumPy更适合处理统一的数值数组数据。...自从2010年pandas开源以来,pandas逐渐成长为一个非常大的库,应用于许多真实案例。开发者社区已经有了800个独立的贡献者,他们在解决日常数据问题的同时为这个项目提供贡献。...: 1.7, 2002: 3.6}} 如果嵌套字典传给DataFrame,pandas就会被解释为:外层字典的键作为列,内层键则作为行索引: In [66]: frame3 = pd.DataFrame...d 3.0 e 4.0 dtype: float64 小心使用inplace,它会销毁所有被删除的数据。...0.0 1.0 这里,结果中的行标签是所有列的唯一值。
a 0.0 dtype: float64 注意 NaN(不是一个数字)是 pandas 中使用的标准缺失数据标记。...如果一个标签在其中一个 Series 中找不到,结果将被标记为缺失的 NaN。能够编写代码而无需进行任何显式数据对齐,为交互式数据分析和研究提供了巨大的自由和灵活性。...a 0.0 dtype: float64 注意 NaN(不是一个数字)是 pandas 中使用的标准缺失数据标记。...如果一个标签在一个Series或另一个中找不到,则结果将被标记为缺失的NaN。能够编写不进行任何显式数据对齐的代码为交互式数据分析和研究提供了巨大的自由和灵活性。...如果一个标签在一个Series中找不到或另一个中找不到,则结果将标记为缺失的NaN。能够编写不执行任何显式数据对齐的代码为交互式数据分析和研究提供了巨大的自由和灵活性。
一、简介 Pandas 是 Python 中的数据操纵和分析软件包,它是基于Numpy去开发的,所以Pandas的数据处理速度也很快,而且Numpy中的有些函数在Pandas中也能使用,方法也类似。...Pandas 为 Python 带来了两个新的数据结构,即 Pandas Series(可类比于表格中的某一列)和 Pandas DataFrame(可类比于表格)。...删除NaN – df.dropna() dropna()函数还有一个参数是how,当how = all时,只会删除全部数据都为NaN的列或行。...2.0 b 0.0 0.0 10.0 8.0 3.0 4.0 0 5.0 6.0 0.0 0.0 0.0 0.0 Code 使用fillna()函数可以替换NaN为某一值。...其参数如下: value:用来替换NaN的值 method:常用有两种,一种是ffill前向填充,一种是backfill后向填充 axis:0为行,1为列
Numpy & Pandas 简介 此篇笔记参考来源为《莫烦Python》 运算速度快:numpy 和 pandas 都是采用 C 语言编写, pandas 又是基于 numpy, 是 numpy 的升级版本...当axis的值为0的时候,将会以列作为查找单元, 当axis的值为1的时候,将会以行作为查找单元。...mean/average:求均值 median:中位数 cumsum:累加 diff:累差 nonzero:将所有非零元素的行与列坐标分割开,重构成两个分别关于行和列的矩阵 sort:仅针对每一行进行从小到大排序操作...Pandas是基于Numpy构建的,让Numpy为中心的应用变得更加简单。...2 3.0 3 NaN 4 44.0 5 1.0 dtype: float64 Series的字符串表现形式为:索引在左边,值在右边。
NaN的矩阵5.2 删除掉有NaN的行或列5.3 替换NaN值为0或者其他5.4 是否有缺失数据NaN6.Pandas导入导出6.1 导入数据6.2 导出数据7.Pandas合并操作7.1 Pandas...依据index合并7.2.6 解决overlapping的问题8.Pandas plot出图9.学习来源 0.导语 Pandas是基于Numpy构建的,让Numpy为中心的应用变得更加简单。...pandas as pd import numpy as np # 创建含NaN的矩阵 # 如何填充和删除NaN数据dates = pd.date_range('20180820',periods=6...16 17.0 18.0 19 2018-08-25 20 21.0 22.0 23 ''' 5.2 删除掉有NaN的行或列 # 删除掉有NaN的行或列 print(df.dropna(...)) # 默认是删除掉含有NaN的行 print(df.dropna( axis=0, # 0对行进行操作;1对列进行操作 how='any' # 'any':只要存在NaN就drop掉
Out[15]: 0 1.2 1 -3.5 2 NaN 3 0.0 dtype: float64 isna方法为我们提供一个布尔 Series,其中值为空时为True: In...您可能希望删除所有 NA 的行或列,或者仅删除包含任何 NA 的行或列。...3.0 In [28]: data.dropna() Out[28]: 0 1 2 0 1.0 6.5 3.0 传递 how="all" 将仅删除所有 NA 的行: In [29...过滤、清理和其他转换是另一类重要操作。 删除重复项 DataFrame 中可能会出现重复行,原因有很多。...0.0 0.0 5 0.0 1.0 0.0 在这里,我传递了dtype=float以将输出类型从布尔值(pandas 较新版本中的默认值)更改为浮点数。
import numpy as np import pandas as pd from pandas import Series, DataFrame 重新索引 重新索引不会改变原数据 行索引 Series.reindex...4.5 b 7.2 a -5.3 dtype: float64 舍弃指定轴上的数据 drop(index) drop([index1, index2]) obj = pd.Series(np.arange...# 舍弃一行数据 new_obj = obj.drop('c') new_obj a 0.0 b 1.0 d 3.0 e 4.0 dtype: float64 删除数据 行:axis...# 索引不包含末尾 ser[:1] 0 0.0 dtype: float64 ser.loc[:2] 0 0.0 1 1.0 2 2.0 dtype: float64 ser.iloc...14 15 data.loc['Colorado', ['two', 'three']] two 5 three 6 Name: Colorado, dtype: int32 # 所有行的前三列
Pandas 中的NaN和None NaN和None都有它们的位置,并且 Pandas 的构建是为了几乎可以互换地处理这两个值,在适当的时候在它们之间进行转换: pd.Series([1, np.nan...空值上的操作 正如我们所看到的,Pandas 将None和NaN视为基本可互换的,用于指示缺失值或空值。为了促进这个惯例,有几种有用的方法可用于检测,删除和替换 Pandas 数据结构中的空值。...(axis='columns') 2 0 2 1 5 2 6 但这也会丢掉一些好的数据; 你可能更愿意删除全部为 NA 值或大多数为 NA 值的行或列。...参数允许你为要保留的行/列指定最小数量的非空值: df.dropna(axis='rows', thresh=3) 0 1 2 3 1 2.0 3.0 5 NaN 这里删除了第一行和最后一行,因为它们只包含两个非空值...0.0 c 2.0 d 0.0 e 3.0 dtype: float64 ''' 我们可以指定前向填充来传播前一个值: # 向前填充 data.fillna(method='ffill
pandas 自动获取数据类型:77个浮点数,6个整数,78个对象。内存使用量为 861.8 MB。 因此我们能更好的理解减少内存的使用,下面看看pandas 是如何在内存中存储数据的。...我们调用函数和方法选择,编辑,删除DataFrame中的数据时,其实是 BlockManager在’捣鬼‘。 pandas.core.internals 中每种数据类型都有一个特定类。...抛开这个,我们先看看如何提高数值的内存使用。 理解 Subtypes 之前提及到,pandas 会将数值存储为 Numpy 数组,并且连续存储在内存中。...因为原来的 DataFrame仅包含了很少的整型数据,因此内存节省有限。...当每一列包含有限的数据时,这非常有用。当pandas转换一列为 category 类型时,pandas 会使用最节省空间的 int 子类型表示每一列的唯一值。 ?
Data Analysis) 序列(Series) 数据帧(DataFrame) 重索引 删除条目 索引,选择和过滤 算术和数据对齐 函数应用和映射 排序和排名 带有重复值的轴索引 汇总和计算描述性统计量...每列可以是不同的类型。 DataFrame同时具有行索引和列索引,类似于Series的字典。行和列操作大致是对称实现的。 索引DataFrame时返回的列是底层数据的视图,而不是副本。...6 NaN NaN NaN NaN 删除条目 从Series或DataFrame中删除行: df_7 = df_6.drop([0, 1]) df_7 state pop unempl year...NaN g NaN dtype: float64 ''' 为不重叠的索引设置填充值而不是 NaN: ser_6.add(ser_7, fill_value=0) ''' a 3.388398...3 2024.0 4 2025.2 5 0.0 6 0.0 dtype: float64 ''' 计入 NaN: df_6.sum(axis=1, skipna=False
所有数据和代码可在我的GitHub获取: https://github.com/xiaoyusmd/PythonDataScience 一、缺失值类型 在pandas中,缺失数据显示为NaN。...除此之外,还要介绍一种针对时间序列的缺失值,它是单独存在的,用NaT表示,是pandas的内置类型,可以视为时间序列版的np.nan,也是与自己不相等。...type(pd.Series([1,None])[1]) >> numpy.float64 只有当传入object类型时是不变的,因此可以认为如果不是人工命名为None的话,它基本不会自动出现在pandas...[:,df.isnull().any()] >> B D 0 b1 5.0 1 None NaN 2 b2 9.0 3 b3 10.0 如果要查询没有缺失值的行和列,可以对表达式用取反~操作: df.loc...# 将dataframe所有缺失值填充为0 df.fillna(0) >> A B C D 0 a1 b1 1 5.0 1 a1 0 2 0.0 2 a2 b2 3 9.0 3 a3 b3 4 10.0
今天主要是学习pandas,下面一起来实战吧! Pandas是基于Numpy构建的,让Numpy为中心的应用变得更加简单。...要使用pandas,首先需要了解他主要两个数据结构:Series和DataFrame。...pandas as pd import numpy as np # 创建含NaN的矩阵 # 如何填充和删除NaN数据dates = pd.date_range('20180820',periods=6...16 17.0 18.0 19 2018-08-25 20 21.0 22.0 23 ''' 5.2 删除掉有NaN的行或列 # 删除掉有NaN的行或列 print(df.dropna(...)) # 默认是删除掉含有NaN的行 print(df.dropna( axis=0, # 0对行进行操作;1对列进行操作 how='any' # 'any':只要存在NaN就drop掉
提取、添加、删除列 用方法链分配新列 索引 / 选择 数据对齐和运算 转置 DataFrame 应用 NumPy 函数 控制台显示 DataFrame 列属性访问和 IPython 代码补全 提取、添加...、删除列 DataFrame 就像带索引的 Series 字典,提取、设置、删除列的操作与字典类似: In [61]: df['one'] Out[61]: a 1.0 b 2.0 c...重建索引介绍重建索引 / 遵循新标签集的基础知识。 数据对齐和运算 DataFrame 对象可以自动对齐列与索引(行标签)的数据。与上文一样,生成的结果是列和行标签的并集。...NaN NaN DataFrame 和 Series 之间执行操作时,默认操作是在 DataFrame 的列上对齐 Series 的索引,按行执行广播)操作。...b 0.0 c 3.0 d NaN dtype: float64 对 Series 和 Index 应用二进制 ufunc 时,优先执行 Series,并返回的结果也是 Series
17 可以看到,用户 Tom 的性别为 None,用户 Mary 的年龄为 NAN,生日为 NaT。...axis 参数用于控制行或列,跟其他不一样的是,axis=0 (默认)表示操作行,axis=1 表示操作列。 how 参数可选的值为 any(默认) 或者 all。...any 表示一行/列有任意元素为空时即丢弃,all 一行/列所有值都为空时才丢弃。 subset 参数表示删除时只考虑的索引或列名。...thresh参数的类型为整数,它的作用是,比如 thresh=3,会在一行/列中至少有 3 个非空值时将其保留。...本文作者为无邪 AI派 | 禹都一只猫整理,转载请注明。 pandas python
在这方面最重要的数据结构之一是数组。数组通常以行和列的形式结构化其他(基本)相同数据类型的对象。 暂时假设我们仅使用数字,尽管这个概念也可以推广到其他类型的数据。...在最简单的情况下,一维数组在数学上表示为向量,通常由float对象内部表示为实数的一行或一列元素组成。在更普遍的情况下,数组表示为i × j 矩阵的元素。...pandas相当容错,以捕获错误并在相应的数学运算失败时仅放置NaN值。不仅如此,正如之前简要展示的那样,您还可以在许多情况下像处理完整数据集一样处理这些不完整数据集。...plot 方法的参数 参数 格式 描述 x 标签/位置,默认为 None 仅当列值为 x 刻度时使用 y 标签/位置,默认为 None 仅当列值为 y 刻度时使用 subplots 布尔值,默认为 False...② 所有x列的值为正且y列的值为负的行。 ③ 所有列中 x 的值为正或列中 y 的值为负的所有行(这里通过各自的属性访问列)。 比较运算符也可以一次应用于完整的 DataFrame 对象。
缺失值的判断 pandas使用浮点值NaN(Not a Number)表示浮点数和非浮点数组中的缺失值,同时python内置None值也会被当作是缺失值。...DataFrame的缺失值过滤 DataFrame删除缺失值相对于Series而言就要复杂一些,也许有的时候你是想删除含有缺失值的行或列,也许有时候你需要删除的是,当整行或整列全为缺失值的时候才删除,...好在pandas对于这两种情况都有相对应的处理方法。...1、删除含有缺失值的行和列 df.dropna( axis=0, # 0: 对行进行操作; 1: 对列进行操作 how='any' # 'any': 只要存在 NaN 就 drop 掉...) Out[20]: 0 1 2 3 5 6.0 7.0 data.dropna(axis=1) Out[21]: 0 0 1 1 9 2 3 3 5 2、删除全为缺失值的行和列
Series 一种类似一维数组的对象,由一组数据(Numpy数据类型)和与数据相关的数据标签组成 索引在左边,值在右边。...NaN # 指定行和列索引的名字 df2.index.name = 'year';df2.columns.name = 'state' df2 .dataframe tbody tr th...Index pandas的索引对象负责管理轴标签和其他元数据 在构建Series或者DF型数据时,用到的任何数组和其他序列的标签都会被转成一个Index Index对象不可变,用户不能对其进行修改 Index...a 0.0 b 1.0 d 3.0 e 4.0 dtype: float64 obj # 原来的数据是不变的 a 0.0 b 1.0 c 2.0 d...3.0 e 4.0 dtype: float64 obj.drop(['d', 'c']) # 丢弃多个值用列表的形式 a 0.0 b 1.0 e 4.0 dtype: float64
提取、添加、删除列 DataFrame 就像带索引的 Series 字典,提取、设置、删除列的操作与字典类似: In [61]: df['one'] Out[61]: a 1.0 b 2.0...键是新字段的列名,值为是插入值(例如,Series 或 NumPy 数组),或把 DataFrame 当做调用参数的函数。返回结果是插入新值的 DataFrame 副本。 0.23.0 版新增。...重建索引介绍重建索引 / 遵循新标签集的基础知识。 数据对齐和运算 DataFrame 对象可以自动对齐列与索引(行标签)的数据。与上文一样,生成的结果是列和行标签的并集。...NaN NaN DataFrame 和 Series 之间执行操作时,默认操作是在 DataFrame 的列上对齐 Series 的索引,按行执行广播)操作。...b 0.0 c 3.0 d NaN dtype: float64 对 Series 和 Index 应用二进制 ufunc 时,优先执行 Series,并返回的结果也是 Series
表 4.6:基本数组统计方法 方法 描述 sum 数组或沿轴的所有元素的总和;长度为零的数组的总和为 0 mean 算术平均值;对于长度为零的数组无效(返回NaN) std, var 分别是标准差和方差...,但由于没有找到"California"的值,它显示为NaN(不是一个数字),在 pandas 中被视为标记缺失或NA值。...图 5.1:Jupyter 中 pandas DataFrame 对象的外观 对于大型 DataFrame,head方法仅选择前五行: In [51]: frame.head() Out[51]:...float64 使用 DataFrame,可以从任一轴删除索引值。...[row, col] 通过行和列标签选择单个标量值 df.iat[row, col] 通过行和列位置(整数)选择单个标量值 reindex方法 通过标签选择行或列 整数索引的陷阱 使用整数索引的 pandas
领取专属 10元无门槛券
手把手带您无忧上云