Pandas中的空值有三个:np.nan (Not a Number) 、 None 和 pd.NaT(时间格式的空值,注意大小写不能错),这三个值可以用Pandas中的函数isnull(),notnull...如果数据量较大,再配合numpy中的any()和all()函数就行了。 需要特别注意两点: 如果某一列数据全是空值且包含pd.NaT,np.nan和None会自动转换成pd.NaT。...空值(np.nan、None、pd.NaT)既不是空字符串"",也不是空格" "。...从Python解释器来看,np.nan的类型是float,None的类型是NoneType,两者在Pandas中都显示为NaN,pd.NaT的类型是Pandas中的NaTType,显示为NaT。...而不管是空字符串还是空格,其数据类型都是字符串,Pandas判断的结果不是空值。 2. 自定义缺失值有很多不同的形式,如上面刚说的空字符串和空格(当然,一般不用这两个,因为看起来不够直观)。
Pandas 中的NaN和None NaN和None都有它们的位置,并且 Pandas 的构建是为了几乎可以互换地处理这两个值,在适当的时候在它们之间进行转换: pd.Series([1, np.nan...虽然与 R 等领域特定语言中,更为统一的 NA 值方法相比,这种黑魔法可能会有些笨拙,但 Pandas 标记值方法在实践中运作良好,根据我的经验,很少会产生问题。...转换为float64 np.nan boolean 转换为object None或np.nan 请记住,在 Pandas 中,字符串数据始终与object dtype一起存储。...空值上的操作 正如我们所看到的,Pandas 将None和NaN视为基本可互换的,用于指示缺失值或空值。为了促进这个惯例,有几种有用的方法可用于检测,删除和替换 Pandas 数据结构中的空值。...(axis='columns') 2 0 2 1 5 2 6 但这也会丢掉一些好的数据; 你可能更愿意删除全部为 NA 值或大多数为 NA 值的行或列。
Query Query是pandas的过滤查询函数,使用布尔表达式来查询DataFrame的列,就是说按照列的规则进行过滤操作。...用法: pandas.DataFrame.query(self, expr, inplace = False, **kwargs) 参数作用: expr:要评估的查询字符串; inplace=False...Where Where用来根据条件替换行或列中的值。如果满足条件,保持原来的值,不满足条件则替换为其他值。默认替换为NaN,也可以指定特殊值。...Isin Isin也是一种过滤方法,用于查看某列中是否包含某个字符串,返回值为布尔Series,来表明每一行的情况。...用法: DataFrame.loc[] 或者 DataFrame.iloc[] loc:按标签(column和index)选择行和列 iloc:按索引位置选择行和列 选择df第1~3行、第1~2列的数据
这个专题叫做:【50个Pandas的奇淫技巧】,今天这个算是第 3 讲,会持续的更新。传送门:50个Pandas的奇淫技巧!...Pandas为可能存在字符串的Series和Index对象提供了str属性,不仅能够进行向量化操作,还能够处理缺失值。...expand:布尔值,默认为 False。将拆分的字符串展开为单独的列。 如果 True ,返回 DataFrame/MultiIndex 扩展维度。...expand:布尔值,默认为 False。将拆分的字符串展开为单独的列。 如果 True ,返回 DataFrame/MultiIndex 扩展维度。...如果na_rep 为None,并且others 不是None,则在任何列(连接之前)中包含缺失值的行将在结果中具有缺失值。
Data Analysis) 序列(Series) 数据帧(DataFrame) 重索引 删除条目 索引,选择和过滤 算术和数据对齐 函数应用和映射 排序和排名 带有重复值的轴索引 汇总和计算描述性统计量...清洗数据(构建中) 输入和输出(构建中) from pandas import Series, DataFrame import pandas as pd import numpy as np 序列(...每列可以是不同的类型。 DataFrame同时具有行索引和列索引,类似于Series的字典。行和列操作大致是对称实现的。 索引DataFrame时返回的列是底层数据的视图,而不是副本。...1.339386 f -1.072969 g 0.865408 dtype: float64 ''' 如果索引对不相同,则将DataFrame对象相加,会产生行和列的索引对的并集,使不重叠的索引为...NaN 6 NaN dtype: float64 ''' 清洗数据(构建中) 替换 删除 连接 from pandas import Series, DataFrame import pandas
涵盖了 NumPy 和 pandas 的基本操作,4 种主要的数据操作方法(包括索引、分组、重塑和连接)以及 4 种主要的数据类型(包括缺失数据、字符串数据、分类数据和时间序列数据)。...涵盖了 NumPy 和 pandas 的基本操作,4 种主要数据操作方法(包括索引、分组、重塑和连接)以及 4 种主要数据类型(包括缺失数据、字符串数据、分类数据和时间序列数据)。...,其中键是列标签,值是列值。...DataFrame:一个二维数据结构,类似于二维数组或具有行和列的表格。 对象创建 查看数据结构简介部分。 通过传递值列表创建Series,让 pandas 创建默认的RangeIndex。...,其中键是列标签,值是列值。
所有数据和代码可在我的GitHub获取: https://github.com/xiaoyusmd/PythonDataScience 一、缺失值类型 在pandas中,缺失数据显示为NaN。...缺失值有3种表示方法,np.nan,none,pd.NA。 1、np.nan 缺失值有个特点(坑),它不等于任何值,连自己都不相等。如果用nan和任何其它值比较都会返回nan。...type(pd.Series([1,None],dtype='O')[1]) >> NoneType 3、NA标量 pandas1.0以后的版本中引入了一个专门表示缺失值的标量pd.NA,它代表空整数...对于一个dataframe而言,判断缺失的主要方法就是isnull()或者isna(),这两个方法会直接返回True和False的布尔值。可以是对整个dataframe或者某个列。...: float64 cumsum累加会忽略NA,但值会保留在列中,可以使用skipna=False跳过有缺失值的计算并返回缺失值。
DataFrame是一个表格型的数据结构,它含有一组有序的列,每列可以是不同的值类型(数值、字符串、布尔值等)。...NaN NaN NaN NaN 因为'c'和'e'列均不在两个DataFrame对象中,在结果中以缺省值呈现。...它们大部分都属于约简和汇总统计,用于从Series中提取单个值(如sum或mean)或从DataFrame的行或列中提取一个Series。...d -0.55 NA值会自动被排除,除非整个切片(这里指的是行或列)都是NA。...后面的频率值是每个列中这些值的相应计数。 5.4 总结 在下一章,我们将讨论用pandas读取(或加载)和写入数据集的工具。
大多数数据科学家可能会赞扬Pandas进行数据准备的能力,但许多人可能无法利用所有这些能力。...诸如字符串或数字之类的非列表项不受影响,空列表是NaN值(您可以使用.dropna()清除它们 )。 ? 在DataFrame df中Explode列“ A ” 非常简单: ?...尽管可以通过将axis参数设置为1来使用concat进行列式联接,但是使用联接 会更容易。 请注意,concat是pandas函数,而不是DataFrame之一。...因此,它接受要连接的DataFrame列表。 如果一个DataFrame的另一列未包含,默认情况下将包含该列,缺失值列为NaN。...为了防止这种情况,请添加一个附加参数join ='inner',该参数 只会串联两个DataFrame共有的列。 ? 切记:在列表和字符串中,可以串联其他项。
fill:可以是'right,要么在最右边的列中填充'np.nan值来填充缺失的部分,也可以在left中填充np.nan值在最左边的列中填充。...任何非字符串的列都将转换为字符串。 unite()的参数是: *colname:新连接列的名称。 ** args:要连接的列的列表,可以是字符串,符号或列的整数位置。...*sep:用于连接列的字符串分隔符。 *remove:指示是否删除用于合并的原始列。 *na_action:可以是maintain(默认值),ignore或”as_string之一。...默认的maintain 将使新列行成为“NaN”值如果该行中的任何原始列单元格包含“NaN”。 ignore会在加入时将任何NaN值视为空字符串。...as_string将在加入之前将任何NaN值转换为字符串“nan“。
连接另一个Index对象,产生新的Index对象 3 .insert(loc,e) 在loc位置增加一个元素 4 .delete(loc) 删除loc位置处的元素 5 .union(idx) 计算并集..., limit, copy ) 改变、重排Series和DataFrame索引,会创建一个新对象,如果某个索引值当前不存在,就引入缺失值。...9 .drop() 删除Series和DataFrame指定行或列索引。 10 .loc[行标签,列标签] 通过标签查询指定的数据,第一个值为行标签,第二值为列标签。...,用统计学指标快速描述数据的概要 6 .sum() 计算各列数据的和 7 .count() 非NaN值的数量 8 .mean( ) 计算数据的算术平均值 9 .median() 计算算术中位数 10 ....DataFrame是什么?如果你已经清楚了Pandas的这些基础东西之后,搭配上文章中的这些方法,那你用Pandas去做数据处理和分析必然会游刃有余。
对Series对象进行NumPy数组运算,都会保留索引和值之间的连接。 将Series看成是一个定长的有序字典,因为它是一个索引值到数据值的一个映射。 ...如果Series的值中出现NaN,可以利用Pandas模块中提供的isnull()和notnull()函数进行判断。 在算数运算中会自动对齐不同索引的数据。...对象中values属性 values属性会以二维Ndarray的形式返回DataFrame中的数据 如果DataFrame各列的数据类型不同,则值数组的数据类型就会选用能兼容所有列的数据 from pandas...is_unique 将Index没有重复值时,返回True unique 返回Index中唯一的数组 Series对象和DateFrame对象中的索引值不只是整数,还可以是字符串。...统计 统计函数 功能说明 count 非NaN值的数量 describe 针对Series或DataFrame的列计算汇总统计 min,max 最小值和最大值 argmin,argmax 最小值和最大值的索引位置
numpy主要用于数组和矩阵的运算,一般在算法领域会应用比较多。...内连接); on:连接键,必须在left和right两个DataFrame中存在,否则使用left_on和right_on; left_on:left中的连接键; right_on:right中的连接键...自定义函数 Pandas中内置很多常用的方法,譬如求和,最大值等等,但很多时候还是满足不了需求,我们需要取调用自己的方法,Pandas中可以使用map()和apply()来调用自定义的方法,需要注意下map...()和apply()的区别: map():是pandas.Series()的内置方法,也就是说只能用于单一列,返回的是数据是Series()格式的; apply():可以用于单列或者多列,是对整个DataFrame...()的内置方法 # apply()可以用于DataFrame和Series # 取绝对值,返回的是Series print(df['A'].map(lambda x: abs(x))) ''' 0
转换为ndarray二维数组 2 .append(idx) 连接另一个Index对象,产生新的Index对象 3 .insert(loc,e) 在loc位置增加一个元素 4 .delete(loc) 删除..., columns ,fill_value, method, limit, copy ) 改变、重排Series和DataFrame索引,会创建一个新对象,如果某个索引值当前不存在,就引入缺失值。...9 .drop() 删除Series和DataFrame指定行或列索引。 10 .loc[行标签,列标签] 通过标签查询指定的数据,第一个值为行标签,第二值为列标签。...() 针对各列的多个统计汇总,用统计学指标快速描述数据的概要 6 .sum() 计算各列数据的和 7 .count() 非NaN值的数量 8 .mean( ) 计算数据的算术平均值 9 .median(...DataFrame是什么?如果你已经清楚了Pandas的这些基础东西之后,搭配上文章中的这些方法,那你用Pandas去做数据处理和分析必然会游刃有余。
df1中的数据有多个被标记为a和b的行,而df2中key列的每个值则仅对应一行。...对象(如Series和DataFrame),带有标签的轴使你能够进一步推广数组的连接运算。...有的情况下,使用这样的数据会很麻烦,你可能会更喜欢DataFrame,不同的item值分别形成一列,date列中的时间戳则用作索引。...,最后一个可选值则是用于填充DataFrame的数据列。...它不是将一列转换到多个新的DataFrame,而是合并多个列成为一个,产生一个比输入长的DataFrame。
对于数值数据,pandas使用浮点值NaN(Not a Number)表示缺失数据。...要将其替换为pandas能够理解的NA值,我们可以利用replace来产生一个新的Series(除非传入inplace=True): In [62]: data.replace(-999, np.nan...如果DataFrame的某一列中含有k个不同的值,则可以派生出一个k列矩阵或DataFrame(其值全为1和0)。...pandas对此进行了加强,它使你能够对整组数据应用字符串表达式和正则表达式,而且能处理烦人的缺失数据。 字符串对象方法 对于许多字符串处理和脚本应用,内置的字符串方法已经能够满足要求了。...下一章,我们会学习pandas的聚合与分组
断言 pandas 对象的真实性会引发错误,因为空值或值的测试是模棱两可的。...其中大多数是聚合(因此产生较低维度的结果),如`sum()`、`mean()`和`quantile()`等,但有些方法,如`cumsum()`和`cumprod()`,会产生相同大小的对象。...简而言之,基本迭代(`for i in object`)产生: + **Series**: 值 + **DataFrame**: 列标签 因此,例如,迭代 DataFrame 会给出列名:...请参见矢量化字符串方法获取完整描述。 排序 pandas 支持三种排序方式:按索引标签排序、按列值排序以及按两者的组合排序。...因此,以下代码片段会产生意外结果。
DataFrame 二维数组 实例: # 导入模块 import pandas as pd import numpy as np # pandas创建一个二维数组 attr = pd.DataFrame...]] # 取第一列和第三列 attr4.iloc[[0,1],[0,2]] # 取第一行和第二行的第一列和第三列 # 布尔索引 # 取出年龄大于10的 attr4[attr4['age']>10] #...缺失数据的处理 我们如果读取爬去到的大量数据,可能会存在NaN值。 出现NaN和numpy中是一样的,表示不是一个数字。 我们需要把他修改成0获取其他中值,来减少我们计算的误差。...()) # 赋值为NaN值 att4['age'][0] = np.nan # 赋值为0的数据为NaN attr4[attr4==0] = np.nan nan是不会参与平均值等计算的,0会参与计算。...pandas 连接MongoDB数据库 # 导入操作MongoDB的模块 from pymongo import MongoClient import pandas as pd # 链接 client
left ,左DataFrame对象。 right,右DataFrame对象。 on,列(名称)连接,必须在左DataFrame和右DataFrame对象中存在(找到)。...Pandas提供了连接DataFrame的append方法,沿axis=0连接。...87.0 78.0 # 1 Bob NaN NaN 67.0 87.0 # 2 Bauer NaN NaN 98.0 78.0 Pandas提供了连接DataFrame...的join方法,沿axis=1连接,用于将两个DataFrame中的不同的列索引合并成为一个DataFrame。...object - 汇总字符串列 number - 汇总数字列 all - 将所有列汇总在一起(不应将其作为列表值传递) import pandas as pd if __name__ == "__main
本次来介绍关于缺失值数据处理的几个常用方法。 一、缺失值类型 在pandas中,缺失数据显示为NaN。缺失值有3种表示方法,np.nan,none,pd.NA。...1、np.nan 缺失值有个特点(坑),它不等于任何值,连自己都不相等。如果用nan和任何其它值比较都会返回nan。...type(pd.Series([1,None],dtype='O')[1]) >> NoneType 3、NA标量 pandas1.0以后的版本中引入了一个专门表示缺失值的标量pd.NA,它代表空整数...对于一个dataframe而言,判断缺失的主要方法就是isnull()或者isna(),这两个方法会直接返回True和False的布尔值。可以是对整个dataframe或者某个列。...: float64 cumsum累加会忽略NA,但值会保留在列中,可以使用skipna=False跳过有缺失值的计算并返回缺失值。
领取专属 10元无门槛券
手把手带您无忧上云