一、前言 前几天在Python白银交流群【空翼】问了一个pandas处理Excel数据的问题,提问截图如下: 下图是他的原始数据部分截图: 二、实现过程 看上去确实是两列,但是X列里边又暗藏玄机,如果只是单纯的针对这一列全部是数值型的数据进行操作...如果只是想保留非负数的话,而且剔除值为X的行,【Python进阶者】也给了一个答案,代码如下所示: import pandas as pd df = pd.read_excel('U.xlsx') #...他想实现的效果是,保留列中的空值、X值和正数,而他自己的数据还并不是那么的工整,部分数据入下图所示,可以看到130-134行的情况。...顺利地解决了粉丝的问题。其中有一行代码不太好理解,解析如下: 三、总结 大家好,我是皮皮。...这篇文章主要盘点了一个Pandas处理的问题,文中针对该问题,给出了具体的解析和代码实现,帮助粉丝顺利解决了问题。 最后感谢粉丝【空翼】提问,感谢【Jun.】
知识点 空值删除和填充 apply、applymap用法 shift()用法 value_counts()和mean():统计每个元素的出现次数和行(列)的平均值 缺失值和空值处理 概念 空值:空值就是没有任何值...() 官方文档 df.dropna() 函数作用:删除含有空值的行或列,删除缺失值 DataFrame.dropna(axis=0, how='any', thresh=None, subset=None..., inplace=False) axis:维度,0表示index行,1表示columns列,默认为0 how: all:全部为缺失值则删除该行或者列 any:至少有一个则删除 thresh...:指定至少出现了thresh个才删除 subset:指定在某些列的子集中选择出现了缺失值的列删除,不在子集中不会删除(axis决定行\列) inplace:刷选过缺失值得到的新数据是存为副本还是直接在原数据上进行修改...toy born 1 Batman Batmobile 1940-04-25 df.dropna(how='all') # 全部是空值才会删除 name toy born 0 Alfred
如果赋值的是Series,就会精准匹配DataFrame的索引,所有空位都将被填上缺失值。...isin 计算一个指示各值是否都包含在参数集合中的布尔型数组 delete 删除索引i处的元素,并的到新的index drop 删除传入的值,并得到新的index insert 将元素插入到索引i处,...| 在MultiIndex的指定级别上匹配简单索引,否则选取其子集 copy | 默认True,无论何时都复制;如果为False,则新旧相等就不复制 丢弃制定轴上的项 使用drop方法可以丢弃某条轴上一个或多个项...根据整数位置选取单列或单行,并返回一个Series get_value、set_value方法 根据行标签和列标签选取单个值 算术运算和数据对齐 pandas最重要的一个功能是,它可以对不同索引的对象进行算术运算...在将对象相加时,如果存在不同的索引,则结果的索引就是该索引对的并集。自动的数据对齐操作在不重叠的索引处引入了NA值。
NumPy NumPy库是Python中用于科学计算的核心库。它提供了一个高性能的多维数组对象,以及用于处理这些数组的工具。 ?...的值不大于1的子集 >>> s[(s 2)] # 选择Seriess的值是2 的子集 >>> df[df['Population']>1200000000] # 使用过滤器来调整数据框...# 设置 >>> s['a'] = 6 # 将Series s的索引a设为6 Dropping >>> s.drop(['a', 'c']) # 从行删除值 (axis=0) >>> df.drop...id_vars: 不需要被转换的列名。 value_vars: 需要转换的列名,如果剩下的列全部都要转换,就不用写了。 var_name和value_name: 是自定义设置对应的列名。...col_level : 如果列是MultiIndex,则使用此级别。 宽数据--->>长数据,有点像用excel做透视跟逆透视的过程。
1.重新索引 如果reindex会根据新索引重新排序,不存在的则引入缺省: In [3]: obj = Series([4.5,7.2,-5.3,3.6], index=["d","b","a","c"...: object 2.丢弃指定轴上的项 drop方法返回在指定轴上删除了指定值的新对象: In [12]: obj = Series(np.arange(5.), index=["a","b","c",...: float64 DataFrame可以删除任意轴上的索引值 3.索引,选取和过滤 Series的索引可以不止是整数: In [4]: obj = Series(np.arange(4.), index...False True True Utah True True True True New York True True True True 利用ix可以选取行和列的子集...,如果存在不同的索引,则结果的索引取其并集: In [20]: s1 = Series([7.3,-2.5,3.4,1.5],index=['a','c','d','e']) In [21]: s2 =
, 3.6]]) 如果DataFrame各列的数据类型不同,则值数组的dtype就会选用能兼容所有列的数据类型: In [75]: frame2.values Out[75]: array([[2000...由于需要执行一些数据整理和集合逻辑,所以drop方法返回的是一个在指定轴上删除了指定值的新对象: In [105]: obj = pd.Series(np.arange(5.), index=['a',...,可以删除任意轴上的索引值。...在将对象相加时,如果存在不同的索引对,则结果的索引就是该索引对的并集。对于有数据库经验的用户,这就像在索引标签上进行自动外连接。...如果某个索引对应多个值,则返回一个Series;而对应单个值的,则返回一个标量值: In [225]: obj['a'] Out[225]: a 0 a 1 dtype: int64 In
若只在原Series上插入单个值,则采用赋值方式即可,如代码清单6-9所示。...常用的是drop方法,它可以删除行或者列,基本语法格式如下。...表示删除的行或列的标签。无默认值 axis:接收0或1。表示执行操作的轴向,其中0表示删除行,1表示删除列。默认为0 levels:接收int或者索引名。表示索引级别。...8 e 14 9 # 删除行 df.drop('a', axis = 0, inplace = True) print('删除a行后的DataFrame为:\n', df) 输出: 删除...:计算两个Index对象的并集 isin:计算一个Index是否在另一个Index,返回bool数组 delete:删除指定Index的元素,并得到新的Index drop:删除传入的值,并得到新的Index
str类型 是直接指定工作表的名称 int类型 是指定从0开始的工作表的索引, 所以sheelt_name默认值是0,即第一个工作表。...要跳过的行号(0索引)或文件开头要跳过的行数(int)。如果可调用,可调用函数将根据行索引进行计算,如果应该跳过行则返回True,否则返回False。...index_col=None: int或元素都是int的列表, 将某列的数据作为DataFrame的行标签,如果传递了一个列表,这些列将被组合成一个多索引,如果使用usecols选择的子集,index_col...squeeze=False, 布尔值,默认False。 如果解析的数据只有一列,返回一个Series。...df_dict = pd.read_excel(file, sheet_name='Sheet1', header=1) 需要注意的是,如果不行指定任何行作为列名,或数据源是无标题行的数据,可以显示的指定
如果两个树在结构上相同,并且节点具有相同的值,则认为它们是相同的。...解题思路 先比较根节点的值是否相同 && 左子树相同 && 右子树相同 代码 public boolean isSameTree(TreeNode p, TreeNode q) { if
如果仔细观察,您会发现步骤 3 的输出缺少步骤 2 的所有对象列。其原因是对象列中缺少值,而 pandas 不知道如何处理字符串值与缺失值。 它会静默删除无法为其计算最小值的所有列。...此返回值似乎不一致,但是如果我们将序列视为将标签映射到值的类似于字典的对象,则返回值是有意义的。...如果传递单个标量值,则返回一个序列。 如果传递了列表或切片对象,则返回一个数据帧。...更多 选择行的子集以及所有列时,不必在逗号后使用冒号。 如果没有逗号,则默认行为是选择所有列。 先前的秘籍正是以这种方式选择了行。 但是,您可以使用冒号表示所有列的一部分。...选择行的快捷方式仅包含索引运算符本身。 这只是显示 Pandas 其他功能的捷径,但索引运算符的主要功能实际上是选择数据帧的列。 如果要选择行,则最好使用.iloc或.loc,因为它们是明确的。
: object 如果数据是ndarray,则传递的索引必须具有相同的长度。...index:对于行标签,如果没有索引被传递,则要用于结果帧的索引是可选缺省值np.arrange(n)。 columns:对于列标签,可选的默认语法是 - np.arrange(n)。...这只有在没有通过索引的情况下才是正确的。 dtype:每列的数据类型。 copy:如果默认值为False,则使用该命令(或其它)复制数据。...如果标签存在重复使用,则多行将被删除。...dtype 返回对象的dtype。 empty 如果series为空,则返回True。 ndim 根据定义1返回基础数据的维度数。 size 返回基础数据中元素的数量。
参考答案: Array.prototype.distinct = function() { var ret = []; for (var i =...
35]: dtype('float64') In [36]: arr2.dtype Out[36]: dtype('int32') 数据类型是 NumPy 灵活性的来源,用于与来自其他系统的数据进行交互...NumPy 结构化/记录数组 被视为“数组的字典”情况 Series 的字典 每个值都变成了一列;如果没有传递显式索引,则每个 Series 的索引被合并在一起以形成结果的行索引 字典的字典 每个内部字典都变成了一列...insert() 通过在索引i处插入元素来计算新的索引 is_monotonic 如果每个元素大于或等于前一个元素则返回True is_unique 如果索引没有重复值则返回True | unique...由于 DataFrame 是二维的,您可以使用类似 NumPy 的符号使用轴标签(loc)或整数(iloc)选择行和列的子集。...: float64 当整行或整列包含所有 NA 值时,总和为 0,而如果任何值不是 NA,则结果为 NA。
在删除行时,重要的是要了解PyTables通过擦除行然后移动后续数据来删除行。因此,删除操作可能是一个非常昂贵的操作,具体取决于数据的方向。...因此,如果查询输出为空,则所有生成的列将作为对象值返回(因为它们是最一般的)。如果你预见到你的查询有时会生成��结果,你可能希望在之后明确进行类型转换以确保 dtype 的完整性。...返回列的子集。如果类似列表,所有元素必须是位置的(即整数索引到文档列)或与用户在 `names` 中提供的列名对应的字符串,或从文档标题行中推断出的列名。...类型推断是一件很重要的事情。如果可以将列强制转换为整数 dtype 而不改变内容,则解析器将这样做。任何非数字列将像其他 pandas 对象一样以 object dtype 传递。...path_or_buf: 要写入的文件的字符串路径或文件对象。如果是文件对象,则必须使用newline=''打开。
1.创建数据框 手动创建 DataFrame 的方法是将字典传递给 pandas 中的 DataFrame() 函数。 字典的键是列名,值是每列值。...(1).loc 按照行列名取子集 可以用行名或逻辑值(.loc )或行索引(.iloc )对行进取子集,索引依然从0开始。...y 2 5 8 (2).loc按照逻辑值取子集 按照逻辑值取子集的话,.loc可以写也可以不写。...如果按照逻辑值取子集,向 .loc 传递一个布尔表达式,并且将返回与布尔表达式匹配的所有行。 使用多个条件时,可以分别对 'and' 和 'or' 使用 & 或 | 运算符。...],['A','B']] #xy行,AB列 ## A B ## x 1 4 ## y 2 5 练习:数据框提取行 课程使用的示例数据是tips,来自seaborn包,内容如下: import
可以使用单引号('value')、双引号("value")或三引号("""value""")定义字符串,其中使用三引号定义的字符串可以出现在多行上,新行中的字符串也包含在变量的值中。...如果step为负,则end_index默认值为-列表长度-1。如果不设置step,则返回结果将是从start_index开始至list末尾的所有元素。...如果我们用“=”复制一个列表,如:my_list_copy = my_list,那么我们在my_list_copy变量中复制的是其引用而不是列表中的值。...如果将不同类型的数组传递给np.array(),则可以使用参数dtype表示不同的类型。若没有给出这个参数,那么数组类型将是保存对象所需的最小类型。...np.median() –会返回数组内元素的中位数(数组排完序后计算得到的中位数,如果数组长度为偶数,则返回数组两个中间值的平均值) np.corrcoef() -返回相关系数矩阵。
NumPy 数组切片NumPy 数组切片用于从数组中提取子集。它类似于 Python 中的列表切片,但支持多维数组。一维数组切片要从一维数组中提取子集,可以使用方括号 [] 并指定切片。...([[1, 3, 5], [7, 9]])# 从第一行到第三行,第二列print(arr[:, 1]) # 输出:array([2, 5, 8])练习创建一个 5x5 的二维数组 arr,并打印以下子集...时间间隔日期时间M日期和时间对象OPython 对象字符串S固定长度字符串Unicode 字符串U可变长度 Unicode 字符串可变长度字节V用于其他类型的固定内存块练习创建以下 NumPy 数组,并打印它们的元素和数据类型...一个包含 5 个布尔值的数组。一个包含 7 个复杂数的数组。一个包含 10 个日期时间对象的数组。在评论中分享您的代码和输出。...最后为了方便其他设备和平台的小伙伴观看往期文章:微信公众号搜索:Let us Coding,关注后即可获取最新文章推送看完如果觉得有帮助,欢迎点赞、收藏、关注
添加、修改、删除值 3. 排序 3.2.5 Index索引对象 1.索引对象概述 2. 索引对象操作 3....数据异常:数据异常是一类个别数据远离数据集的问题 数据冗余:数据冗余是指数据中存在一些多余的、无意义的属性。 数据值冲突:数据值冲突是一类同一属性存在不同值的问题。...数据冲突的检测与处理 对现实世界的同一实体,来自不同数据源的属性定义不同。...使用[]访问数据 变量[索引] 需要说明的是,若变量的值是一个Series类对象,则会根据索引获取该对象中对应的单个数据;若变量的值是一个DataFrame类对象,在使用“[索引]”访问数据时会将索引视为列索引...需要说明的是,若变量是一个DataFrame类对象,它在使用"loc[索引]"或"iloc[索引]"访问数据时会将索引视为行索引,获取该索引对应的一行数据。
object (二)与缺失值判断和处理相关的方法 isnull():判断每个元素是否是缺失值,会返回一个与原对象尺寸相同的布尔性 Pandas 对象 notnull():与isnull()相反 dropna...():返回一个删除缺失值后的数据对象 fillna():返回一个填充了缺失值之后的数据对象 1、缺失值判断 data.isnull() 0 False 1 True 2 False...5], [np.nan, 4, 6]]) df.isnull().sum().sum() # 统计缺失值的个数 2 在缺失值的处理方法中,删除缺失值是常用的方法之一...通过dropna方法可以删除具有缺失值的行。...默认为 False,表示保留原索引;如果设为 True,则在删除重复值后重新设置索引。
领取专属 10元无门槛券
手把手带您无忧上云