标签:python与Excel,pandas 至此,我们已经学习了使用Python pandas来输入/输出(即读取和保存文件)数据,现在,我们转向更深入的部分。...在Excel中,我们可以看到行、列和单元格,可以使用“=”号或在公式中引用这些值。...在Python中,数据存储在计算机内存中(即,用户不能直接看到),幸运的是pandas库提供了获取值、行和列的简单方法。 先准备一个数据框架,这样我们就有一些要处理的东西了。...要获取前三行,可以执行以下操作: 图8 使用pandas获取单元格值 要获取单个单元格值,我们需要使用行和列的交集。...接着,.loc[[1,3]]返回该数据框架的第1行和第4行。 .loc[]方法 正如前面所述,.loc的语法是df.loc[行,列],需要提醒行(索引)和列的可能值是什么?
处理缺失值 Pandas 基本上把 None 和 NaN 看成是可以等价交换的缺失值形式。...发现缺失值 Pandas 数据结构有两种有效的方法可以发现缺失值:isnull() 和 notnull()。..., 因为可能有时候只需要剔除全部是缺失值的行或列, 或者绝大多数是缺失值的行或列。...这些需求可以通过设置 how 或 thresh 参数来满足, 它们可以设置剔除行或列缺失值的数量阈值。...NaN 2 1 2.0 3.0 5 2 NaN 4.0 6 还可以通过 thresh 参数设置行或列中非缺失值的最小数量, 从而实现更加个性化的配置: print(df.dropna(
本文将由浅入深地介绍 Pandas 窗口函数的常见用法、常见问题以及如何避免或解决报错。二、窗口函数的基本概念窗口函数是一种特殊的函数,它可以在一组数据上进行计算,并返回与原始数据相同数量的结果。...在 Pandas 中,窗口函数主要用于对时间序列数据或有序数据进行滚动计算、累积计算等操作。常见的窗口函数包括 rolling、expanding 和 ewm。...需要注意的是,前两个值由于没有足够的数据点来进行计算,因此结果为 NaN。2....可以通过可视化手段来观察不同窗口大小下的结果变化,从而找到最优解。2. 边界值处理在使用窗口函数时,边界值(如开头和结尾)可能会出现 NaN 值。这是因为这些位置的数据不足以构成完整的窗口。...数据缺失处理如果数据中存在缺失值(NaN),窗口函数可能会受到影响。为了确保计算准确性,可以在计算前使用 fillna() 方法填充缺失值,或者使用 dropna() 方法删除含有缺失值的行。
info()函数用于按列获取标题、值的数量和数据类型等一般信息。一个类似但不太有用的函数是df.dtypes只给出列数据类型。...NaN(非数字的首字母缩写)是一个特殊的浮点值,所有使用标准IEEE浮点表示的系统都可以识别它 pandas将NaN看作是可互换的,用于指示缺失值或空值。...假设我们想按性别将值分组,并计算物理和化学列的平均值和标准差。...使用max()查找每一行和每列的最大值 # Get a series containing maximum value of each row max_row = df.max(axis=1) ?...mean():返回平均值 median():返回每列的中位数 std():返回数值列的标准偏差。 corr():返回数据格式中的列之间的相关性。 count():返回每列中非空值的数量。
是不相等的 np.nan == np.nan # 会返回False 3) # 计算数组中nan的个数 # 假如a中有nan值,我们可以找出这个值的个数 # count_nonzero统计非0数值的个数,...=a) 或者 np.count_nonzero(np.isnan(a)) 4) nan和其他任意值计算都是nan 5) 当我们计算的时候需要把nan替换成0或者均值,或者中值。...6)实例替换nan值 # 生成一个数组 t = np.arange(12).reshape((3,4)).astype('float') # 将第3行的第2列和后面的替换成nan t[2,1:] = np.nan...# 循环行 for i in range(t.shape[0]): # 获取当前行 temp_col = t[i,:] # 计算nan的数量 num_nan = np.count_nonzero(np.isnan...值得注意的是我们的索引长度需要和我们数据的长度相同。
在Python中,我们创建计算列的方式与PQ中非常相似,创建一列,计算将应用于这整个列,而不是像Excel中的“下拉”方法那样逐行进行。要创建计算列,步骤一般是:先创建列,然后为其指定计算。...其正确的计算方法类似于Power Query,对整个列执行操作,而不是循环每一行。基本上,我们不会在pandas中循环一列,而是对整个列执行操作。这就是所谓的“矢量化”操作。...记住,我们永远不应该循环每一行来执行计算。pandas实际上提供了一种将字符串值转换为datetime数据类型的便捷方法。...处理数据框架中NAN或Null值 当单元格为空时,pandas将自动为其指定NAN值。我们需要首先考虑这些值,因为在大多数情况下,pandas不知道如何处理它们。...我们可以使用.fillna()方法将NAN值替换为我们想要的任何值。出于演示目的,这里只是将NAN值替换为字符串值“0”。
Pandas为可能存在字符串的Series和Index对象提供了str属性,不仅能够进行向量化操作,还能够处理缺失值。...向量化的操作使我们不必担心数组的长度和维度,只需要关系操作功能,尤为强大的是,除了支持常用的字符串操作方法,还集成了正则表达式的大部分功能,这使得pandas在处理字符串列时,具有非常大的魔力。...例如,要计算每个单词中‘a’的个数,下面一行代码就可以搞定,非常高效 s = pd.Series(['amazon','alibaba','baidu']) s.str.count('a') 0...方法 说明 len() 计算字符串长度 strip() 等价于str.strip,去除字符串开头和结尾处指定的字符 rstrip() 等价于str.rstrip ,删除字符串末尾的指定字符(默认为空格)...contains() 对每个元素调用re.search()返回布尔类型 count() 计算符合正则表达式的字符串数量 split() 等价于str.spilt(),支持正则表达式 rsplit()
dropnan: 是否丢弃含有NaN值的行,类型为布尔值。...dropnan: 是否丢弃含有NaN值的行,类型为布尔值。...dropnan: 是否丢弃含有NaN值的行,类型为布尔值。...dropnan: 是否丢弃含有NaN值的行,类型为布尔值。...dropnan: 是否丢弃含有NaN值的行,类型为布尔值。
可以看到,通过前移序列,我们得到了一个原始的监督学习问题( X 和 y 的左右顺序是反的)。忽略行标签,第一列的数据由于存在NaN值应当被丢弃。...n_out:作为输出的观测值数量(y)。值介于0..len(data)-1之间,可选参数,默认为1。 dropnan:是否删除具有NaN值的行,类型为布尔值。可选参数,默认为True。...dropnan: 是否丢弃含有NaN值的行,类型为布尔值。...dropnan: 是否丢弃含有NaN值的行,类型为布尔值。...除此之外,具有NaN值的行已经从DataFrame中自动删除。 我们可以指定任意长度的输入序列(如3)来重复这个例子。
以下文章来源于尤而小屋 ,作者尤而小屋 最近整理了pandas中20个常用统计函数和用法,建议收藏学习~ 模拟数据 为了解释每个函数的使用,模拟了一份带有空值的数据: import pandas...,列表形式;数值在0-1之间,默认是[.25,.5,.75] include/exclude:包含和排除的数据类型信息 返回的信息包含: 非空值的数量count;特例:math字段中有一个空值 均值mean...、top、freq等等 非空值数量count 返回的是每个字段中非空值的数量 In [5]: df.count() Out[5]: sex 5 age 5 chinese...]: 3 In [22]: df["sex"].idxmin() 不能字符类型的字段使用该函数,Pandas不支持: 方差var 计算一组数据的方差,需要注意的是:numpy中的方差叫总体方差,pandas...中的方差叫样本方差 标准差(或方差)分为 总体标准差(方差)和 样本标准差(方差) 前者分母为n,右偏的;后者分母为n-1,是无偏的 pandas里是算无偏的;numpy里是有偏的 In [23]: df.var
目录 一、数据载入 二、数据清洗 (一)Pandas中缺失值的表示 (二)与缺失值判断和处理相关的方法 三、连续特征离散化 四、哑变量处理 准备工作 导入 NumPy 库和 Pandas 库。...Pandas 库将外部数据转换为 DataFrame 数据格式,处理完成后再存储到相应的外部文件中。 1、读 / 写文本文件 文本文件是一种由若干行字符构成的计算机文件,它是一种典型的顺序文件。...int,表示读取前n行,默认为None 文本文件的存储和读取类似,结构化数据可以通过 Pandas 中的to_csv函数实现以 CSV 文件格式存储文件。...中缺失值的表示 Pandas 表示缺失值的一种方法是使用NaN(Not a Number),它是一个特殊的浮点数;另一种是使用 Python 中的None,Pandas 会自动把None转变成NaN。...thresh 阈值设定,当行列中非空值的数量少于给定的值就将该行丢弃 subset 表示进行去重的列/行,如:subset=[ ’a’ ,’d’],即丢弃子列 a d 中含有缺失值的行 inplace
,Pandas等,不仅可以快速简单地清理数据,还可以让非编程的人员轻松地看见和使用你的数据。...Pandas 纳入了大量库和一些标准的数据模型,提供了高效地操作大型数据集所需的工具。pandas提供了大量能使我们快速便捷地处理数据的函数和方法。...是否还有缺失值 返回True/False df.isnull().values.any() 计算缺失值的数量 # 检查某个字段缺失值的数量 df['age'].isnull().sum() # 检查字段缺失值的数量...df.isnull().sum() # 计算所有缺失值的数量 df.isnull().sum().sum() 分开计算每一栏缺失值的数量 3.补齐遗失值 处理缺失值常规的有以下几种方法 舍弃缺失值...df.dropna(how='all') 舍弃超过两栏缺失值的行 df.dropna(thresh=2) 2.舍弃含有缺失值的列 增加一包含缺失值的列 df['employee'] = np.nan
,从创始人的角度我们可以直接理解pandas这个python的数据分析库的主要特性和发展方向。...1.对表格类型的数据的读取和输出速度非常快。(个人对比excel和pandas,的确pandas不会死机....)在他的演示中,我们可以看到读取489597行,6列的数据只要0.9s。...9.数据归纳和分析。 ---- pandas的热度 pandas之所以能有这样的热度,和在座的各位都脱不了干系!!!...index:索引值必须是唯一的和散列的,与数据的长度相同。...dtypes 返回此对象中的dtypes。 empty 如果NDFrame完全为空[没有项目],则为true; 如果任何轴的长度为0。 ndim 轴/阵列尺寸的数量。
该值将被重复以匹配索引的长度。...重要的是,这是已经被过滤为那些萼片长度大于 5 的行的 DataFrame。首先进行过滤,然后进行比率计算。这是一个示例,我们没有对过滤的 DataFrame 可用的引用。...该值将重复以匹配index的长度。...重要的是,这是已经被过滤为萼片长度大于 5 的那些行的 DataFrame。首先进行过滤,然后进行比率计算。这是一个示例,在该示例中我们没有引用 被过滤 的 DataFrame。...重要的是,这是被过滤为那些萼片长度大于 5 的行的 DataFrame。过滤首先发生,然后是比率计算。这是一个例子,我们没有 过滤 DataFrame 的引用可用。
9 .drop() 删除Series和DataFrame指定行或列索引。 10 .loc[行标签,列标签] 通过标签查询指定的数据,第一个值为行标签,第二值为列标签。...,选取单一的标量 9 df.iat[i,j] 通过行和列的位置(整数),选取单一的标量 10 reindex 通过标签选取行或列 11 get_value 通过行和列标签选取单一值 12 set_value...举例:按照索引列排序 df_inner.sort_index() 六、相关分析和统计分析 序号 方法 说明 1 .idxmin() 计算数据最小值所在位置的索引(自定义索引) 2 .idxmax() 计算数据最大值所在位置的索引...,用统计学指标快速描述数据的概要 6 .sum() 计算各列数据的和 7 .count() 非NaN值的数量 8 .mean( ) 计算数据的算术平均值 9 .median() 计算算术中位数 10 ....2 .dropna() 删除缺失数据 3 .info() 查看数据的信息,包括每个字段的名称、非空数量、字段的数据类型 4 .isnull() 返回一个同样长度的值为布尔型的对象(Series或DataFrame
9 .drop() 删除Series和DataFrame指定行或列索引。 10 .loc[行标签,列标签] 通过标签查询指定的数据,第一个值为行标签,第二值为列标签。...,where_j] 通过整数位置,同时选取行和列 7 df.at[1abel_i,1abel_j] 通过行和列标签,选取单一的标量 8 df.iat[i,j] 通过行和列的位置(整数),选取单一的标量...9 reindex 通过标签选取行或列 10 get_value 通过行和列标签选取单一值 11 set_value 通过行和列标签选取单一值 举例:使用iloc按位置区域提取数据 df_inner.iloc...() 针对各列的多个统计汇总,用统计学指标快速描述数据的概要 6 .sum() 计算各列数据的和 7 .count() 非NaN值的数量 8 .mean( ) 计算数据的算术平均值 9 .median(...2 .dropna() 删除缺失数据 3 .info() 查看数据的信息,包括每个字段的名称、非空数量、字段的数据类型 4 .isnull() 返回一个同样长度的值为布尔型的对象(Series或DataFrame
pandas是一个提供快速、灵活、表达力强的数据结构的Python库,适合处理‘有关系’或者‘有标签’的数据。在利用Python做数据分析的时候,pandas是一个强有力的工具。...可以看出loc是靠索引值来索引,iloc靠数据在矩阵中的位置标号来索引(位置标号从0开始),例如: df.loc['b', 'two'] 和 df.iloc[1,1] 对应同一数:8 索引多个数据时...pop只用于删除列,drop可以用来删除行和列(axis参数控制) 2.4.2 删除index: 当drop中的axis参数为0时,即删除行: ind1 = ['a', 'b'] col1 = ['...统计学指标计算 包含的统计学指标计算API有: 函数名 功能 说明 describe 简单指标计算 按col计算常用简单指标,例如均值等 mean 均值 与axis有关 cov 协方差 包括nan count...() col中非nan的数据个数 None sum() 求和 None median() 中位数 None min() 最小值 None max() 最大值 None std() 标准差 None var
导读 前几天发表了一篇推文,分享了Pandas中非常好用的一个API——explode,然而今天又发生了戏剧性的一幕:因Pandas版本过低系统提示'Series' object has no attribute...问题描述:一个pandas dataframe数据结构存在一列是集合类型(即包含多个子元素),需要将每个子元素展开为一行。这一场景运用pandas中的explodeAPI将会非常好用,简单高效。...至此,实际上是完成了单列向多列的转换,其中由于每列包含元素个数不同,展开后的长度也不尽一致,pandas会保留最长的长度,并将其余填充为空值(正因为空值的存在,所以原本的整数类型自动变更为小数类型)。...值得一提,这里的空值在后续处理中将非常有用。...同时,我们还发现不仅实现了列压缩为行,还顺带把原先多出来的NaN空值列给过滤了,简直是意外收获。实际上,这并不意外,因为stack设置了一个默认参数dropna=True。
例如,numpy.zeros和numpy.ones分别创建长度或形状为 0 或 1 的数组。numpy.empty创建一个数组,而不将其值初始化为任何特定值。...存储True和False值的布尔类型 object O Python 对象类型;值可以是任何 Python 对象 string_ S 固定长度 ASCII 字符串类型(每个字符 1 字节);例如,要创建长度为...表 4.6:基本数组统计方法 方法 描述 sum 数组或沿轴的所有元素的总和;长度为零的数组的总和为 0 mean 算术平均值;对于长度为零的数组无效(返回NaN) std, var 分别是标准差和方差...[row, col] 通过行和列标签选择单个标量值 df.iat[row, col] 通过行和列位置(整数)选择单个标量值 reindex方法 通过标签选择行或列 整数索引的陷阱 使用整数索引的 pandas...表 5.8:描述性和摘要统计 方法 描述 count 非 NA 值的数量 describe 计算一组摘要统计信息 min, max 计算最小值和最大值 argmin, argmax 计算获得最小值或最大值的索引位置
不同的是在第一行和第一列的地方多了索引。...# 查看详细信息,行,列,索引,类型,内存等 attr2.info() # 快速统计均值,标准差,最大值,最小值,四分位 attr2.describe() # 当然只会统计数字类型的。...attr4.iloc[:,1] # 取第二列 attr4.iloc[:,[0,2]] # 取第一列和第三列 attr4.iloc[[0,1],[0,2]] # 取第一行和第二行的第一列和第三列 # 布尔索引...缺失数据的处理 我们如果读取爬去到的大量数据,可能会存在NaN值。 出现NaN和numpy中是一样的,表示不是一个数字。 我们需要把他修改成0获取其他中值,来减少我们计算的误差。...()) # 赋值为NaN值 att4['age'][0] = np.nan # 赋值为0的数据为NaN attr4[attr4==0] = np.nan nan是不会参与平均值等计算的,0会参与计算。