通常,您希望通过一列或多列的值对 DataFrame 中的行进行排序: 上图显示了使用.sort_values()根据highway08列中的值对 DataFrame 的行进行排序的结果。...如果有两个或更多相同的品牌,则按 排序model。在列表中指定列名的顺序对应于 DataFrame 的排序方式。 更改列排序顺序 由于您使用多列进行排序,因此您可以指定列的排序顺序。...您可以看到更改列的顺序也会更改值的排序顺序。 按降序按多列排序 到目前为止,您仅对多列按升序排序。在下一个示例中,您将根据make和model列按降序排序。...按具有不同排序顺序的多列排序 您可能想知道是否可以使用多个列进行排序并让这些列使用不同的ascending参数。使用熊猫,您可以通过单个方法调用来完成此操作。...在本教程中,您学习了如何: 按一列或多列的值对Pandas DataFrame进行排序 使用ascending参数更改排序顺序 通过index使用对 DataFrame 进行排序.sort_index(
在本教程结束时,您将知道如何: 按一列或多列的值对Pandas DataFrame进行排序 使用ascending参数更改排序顺序 通过index使用对 DataFrame 进行排序.sort_index...通常,您希望通过一列或多列的值对 DataFrame 中的行进行排序: 上图显示了使用.sort_values()根据highway08列中的值对 DataFrame 的行进行排序的结果。...如果有两个或更多相同的品牌,则按 排序model。在列表中指定列名的顺序对应于 DataFrame 的排序方式。 更改列排序顺序 由于您使用多列进行排序,因此您可以指定列的排序顺序。...您可以看到更改列的顺序也会更改值的排序顺序。 按降序按多列排序 到目前为止,您仅对多列按升序排序。在下一个示例中,您将根据make和model列按降序排序。...在本教程中,您学习了如何: 按一列或多列的值对Pandas DataFrame进行排序 使用ascending参数更改排序顺序 通过index使用对 DataFrame 进行排序.sort_index(
自然毫无悬念 dataframe:无法访问单个元素,只能返回一列、多列或多行:单值或多值(多个列名组成的列表)访问时按列进行查询,单值访问不存在列名歧义时还可直接用属性符号" ....与[ ]访问类似,loc按标签访问时也是执行范围查询,包含两端结果 at/iat,loc和iloc的特殊形式,不支持切片访问,仅可以用单个标签值或单个索引值进行访问,一般返回标量结果,除非标签值存在重复...需注意对空值的界定:即None或numpy.nan才算空值,而空字符串、空列表等则不属于空值;类似地,notna和notnull则用于判断是否非空 填充空值,fillna,按一定策略对空值进行填充,如常数填充...需注意的是,这里的字符串接口与python中普通字符串的接口形式上很是相近,但二者是不一样的。...;sort_values是按值排序,如果是dataframe对象,也可通过axis参数设置排序方向是行还是列,同时根据by参数传入指定的行或者列,可传入多行或多列并分别设置升序降序参数,非常灵活。
一、简介 Pandas 是 Python 中的数据操纵和分析软件包,它是基于Numpy去开发的,所以Pandas的数据处理速度也很快,而且Numpy中的有些函数在Pandas中也能使用,方法也类似。...Pandas 为 Python 带来了两个新的数据结构,即 Pandas Series(可类比于表格中的某一列)和 Pandas DataFrame(可类比于表格)。...6、缺失值(NaN)处理 查找NaN 可以使用isnull()和notnull()函数来查看数据集中是否存在缺失数据,在该函数后面添加sum()函数来对缺失数量进行统计。...除此之外,还可以使用count()函数对非NaN数据进行统计计数。...how = 'all')#只删除所有数据缺失的列 #删除重复值 drop_duplicates(inplace = True) #更改某行/列/位置数据 用iloc或者loc直接替换修改即可 #更改数据类型
考虑到这些约束,Pandas 选择使用标记来丢失数据,并进一步选择使用两个已经存在的 Python 空值:特殊浮点值NaN和 Python None对象。...None:Python 风格的缺失数据 Pandas 使用的第一个标记值是None,这是一个 Python 单例对象,通常用于 Python 代码中的缺失数据。...Python 对象也意味着,如果你在一个带有None值的数组中执行sum()或min()之类的聚合,你通常会得到错误: vals1.sum() ''' -----------------------...空值上的操作 正如我们所看到的,Pandas 将None和NaN视为基本可互换的,用于指示缺失值或空值。为了促进这个惯例,有几种有用的方法可用于检测,删除和替换 Pandas 数据结构中的空值。...2 3 0 1.0 1.0 2.0 2.0 1 2.0 3.0 5.0 5.0 2 NaN 4.0 6.0 6.0 请注意,如果在前向填充期间前一个值不可用,则 NA 值仍然存在。
d -0.385845 dtype: float64 本例中,原 Series 里没有标签 f ,因此,输出结果里 f 对应的值为 NaN。...去掉轴上的标签 drop() 函数与 reindex 经常配合使用,该函数用于删除轴上的一组标签: In [231]: df Out[231]: one two three...`itertuples()` 把 DataFrame 的行当作值的命名元组进行迭代。该操作比 `iterrows()` 快的多,建议尽量用这种方法迭代 DataFrame 的值。...如果必须对值进行迭代,请务必注意代码的性能,建议在 cython 或 numba 环境下实现内循环。参阅增强性能一节,查看这种操作方法的示例。...如果列数较大,比如大于 255 列,则返回正则元组。
. , 6.5, 7. ]]) ① 在新对象中,如果为True,则设置为1,否则设置为0。 ② 在新对象中,如果为True,则设置为even,否则设置为odd。...其基本思想是对复杂对象进行“一次性”操作或应用函数,而不是通过循环遍历对象的单个元素。在Python中,函数式编程工具,如map和filter,提供了一些基本的矢量化手段。...“GroupBy 操作” DataFrame类的一大优势在于根据单个或多个列对数据进行分组。 “复杂选择” 使用(复杂)条件允许从DataFrame对象中轻松选择数据。...② 给出组中的行数。 ③ 给出每列的均值。 ④ 给出每列的最大值。 ⑤ 给出每列的最小值和最大值。 也可以通过多个列进行分组。...② 检查x列中的值是否为正且y列中的值是否为负。 ③ 检查x列中的值是否为正或y列中的值是否为负。 使用结果布尔Series对象,复杂数据(行)的选择很简单。
如果您需要同时进行读取和写入,您需要在单个线程中的单个进程中串行化这些操作。否则,您的数据将被破坏。有关更多信息,请参见(GH 2397)。...如果列头行中的字段数等于数据文件主体中的字段数,则使用默认索引。如果大于,则使用前几列作为索引,以使数据主体中的字段数等于列头中的字段数。 表头后的第一行用于确定列数,这些列将进入索引。...根据是否传入na_values,行为如下: 如果keep_default_na为True,并且指定了na_values,则na_values将被附加到用于解析的默认 NaN 值上。...如果keep_default_na为True,并且未指定na_values,则仅使用默认的 NaN 值进行解析。...如果keep_default_na为False,并且指定了na_values,则仅使用指定的 NaN 值na_values进行解析。
它并不排除使用 Python3,使用 Python3 的开发人员可以通过参考以下文档轻松地对示例进行必要的代码更改:将 Python2 代码移植到 Python3。...Linux 如果您使用的是 Linux,则很可能预装了 Python。...name属性在将序列对象组合到数据帧结构等任务中很有用。 使用标量值 对于标量数据,必须提供索引。 将为尽可能多的索引值重复该值。...可以将其视为序列结构的字典,在该结构中,对列和行均进行索引,对于行,则表示为“索引”,对于列,则表示为“列”。 它的大小可变:可以插入和删除列。 序列/数据帧中的每个轴都有索引,无论是否默认。...DataFrame.from_items:需要一些(键,值)对。 键是列或索引名,值是列或行值。 如果希望键为行索引名,则必须指定orient ='index'作为参数并指定列名。
,也可以通过标签索引进行数据选取,换句话说,df.ix[]是df.loc[]和df.iloc[]的功能集合,且在同义词选取中,可以同时使用整数索引和标签索引。...df.at[]和df.iat[]选取的都是单个单元格(单行单列),所以返回值都为基本数据类型。...2)进行区域选取时,如果只能用标签索引,则使用df.loc[]或df.ix[],如果只能用整数索引,则用df.iloc[]或df.ix[]。...3)如果选取单元格,则df.at[]、df.iat[]、df.loc[]、df.iloc[]都可以,不过要注意参数。...4)选取数据时,返回值存在以下情况: 如果返回值包括单行多列或多行单列时,返回值为Series对象;如果返回值包括多行多列时,返回值为DataFrame对象;如果返回值仅为一个单元格(单行单列)时,返回值为基本数据类型
诸如字符串或数字之类的非列表项不受影响,空列表是NaN值(您可以使用.dropna()清除它们 )。 ? 在DataFrame df中Explode列“ A ” 非常简单: ?...Unstack 取消堆叠将获取多索引DataFrame并对其进行堆叠,将指定级别的索引转换为具有相应值的新DataFrame的列。在表上调用堆栈后再调用堆栈不会更改该堆栈(原因是存在“ 0 ”)。...默认情况下,合并功能执行内部联接:如果每个DataFrame的键名均未列在另一个键中,则该键不包含在合并的DataFrame中。...“inner”:仅包含元件的键是存在于两个数据帧键(交集)。默认合并。 记住:如果您使用过SQL,则单词“ join”应立即与按列添加相联系。...因此,它接受要连接的DataFrame列表。 如果一个DataFrame的另一列未包含,默认情况下将包含该列,缺失值列为NaN。
# index在这里和之前不同,并不能改变原有index,如果指向新的标签,值为NaN (非常重要!)...] #print(data3) print(data4) print('多标签索引\n-----') # 多个标签索引,如果标签不存在,则返回NaN # 顺序可变 data5 = df1.loc['one...pandas中使用reindex()方法实现重新索引功能,该方法会参照原有的Series类对象或DataFrame类对象的索引设置数据:若该索引存在于新对象中,则其对应的数据设为原数据,否则填充为缺失值...使用[]访问数据 变量[索引] 需要说明的是,若变量的值是一个Series类对象,则会根据索引获取该对象中对应的单个数据;若变量的值是一个DataFrame类对象,在使用“[索引]”访问数据时会将索引视为列索引...使用at和iat访问数据 pandas中还可以使用at和iat访问数据,与前两种方式相比,这种方式可以访问DataFrame类对象的单个数据。
]) 08 返回序列 将squeeze设置为True,如果文件只包含一列,则返回一个Series,如果有多列,则还是返回DataFrame。...# 格式为engine=None,其中可选值有{'c', 'python'} pd.read_csv(data, engine='c') 13 列数据处理 使用converters参数对列的数据进行转换...# int类型,默认为None pd.read_csv(data, nrows=1000) 17 空值替换 na_values参数的值是一组用于替换NA/NaN的值。如果传参,需要指定特定列的空值。...如果为“infer”,且filepath_or_buffer是以.gz、.bz2、.zip或.xz结尾的字符串,则使用gzip、bz2、zip或xz,否则不进行解压缩。...如果使用zip,则ZIP文件必须仅包含一个要读取的数据文件。设置为None将不进行解压缩。
如果列标题行中的字段数等于数据文件主体中的字段数,则使用默认索引。如果大于此数,则使用前几列作为索引,以使数据主体中的剩余字段数等于标题中的字段数。 在标题之后的第一行用于确定要放入索引的列数。...如果keep_default_na为True,并且未指定na_values,则仅使用默认 NaN 值进行解析。...如果keep_default_na为False,且指定了na_values,则只使用指定的 NaN 值na_values进行解析。...verbose 布尔值,默认为False 指示放置在非数字列中的 NA 值的数量。 skip_blank_lines 布尔值,默认为True 如果为True,则跳过空行而不解释为 NaN 值。...定义的列中的字符串值(按行)连接成单个数组并传递;3) 对每一行使用一个或多个字符串(对应于由 parse_dates 定义的列)调用 date_parser。
: array([[ nan, 1.5], [ 2.4, 1.7], [ 2.9, 3.6]]) 如果DataFrame各列的数据类型不同,则值数组的dtype就会选用能兼容所有列的数据类型...在将对象相加时,如果存在不同的索引对,则结果的索引就是该索引对的并集。对于有数据库经验的用户,这就像在索引标签上进行自动外连接。...NaN Texas 6.0 NaN 9.0 NaN Oregon 9.0 NaN 12.0 NaN 如果你希望匹配行且在列上广播,则必须使用算术运算方法。...7.0 1 NaN 3 NaN dtype: float64 当排序一个DataFrame时,你可能希望根据一个或多个列中的值进行排序。...如果某个索引对应多个值,则返回一个Series;而对应单个值的,则返回一个标量值: In [225]: obj['a'] Out[225]: a 0 a 1 dtype: int64 In
获取文中的CSV文件用于代码编程,请看文末,关注我,致力打造别人口中的公主 在本文中,我们将使用Python的Pandas库逐步完成许多不同的数据清理任务。...不幸的是,其他类型未被识别。 如果有多个用户手动输入数据,则这是一个常见问题。也许我喜欢使用“n / a”,但是其他人喜欢使用“ na”。 检测这些各种格式的一种简单方法是将它们放在列表中。...意外的缺失值 到目前为止,我们已经看到了标准缺失值和非标准缺失值。如果我们出现意外类型怎么办? 例如,如果我们的功能应该是字符串,但是有数字类型,那么从技术上讲,这也是一个缺失值。...遍历OWN_OCCUPIED列 尝试将条目转换为整数 如果条目可以更改为整数,请输入缺失值 如果数字不能是整数,我们知道它是一个字符串,所以继续 看一下代码,然后我将对其进行详细介绍 # 检测数据 cnt...要尝试将条目更改为整数,我们使用。int(row) 如果可以将值更改为整数,则可以使用Numpy's将条目更改为缺少的值。np.nan 另一方面,如果不能将其更改为整数,我们pass将继续。
1.5 1.7 3.6 Nevada NaN 2.4 2.9 警告: 请注意,如果列的数据类型不全都相同,则转置会丢弃列数据类型,因此转置然后再次转置可能会丢失先前的类型信息。...NumPy 结构化/记录数组 被视为“数组的字典”情况 Series 的字典 每个值都变成了一列;如果没有传递显式索引,则每个 Series 的索引被合并在一起以形成结果的行索引 字典的字典 每个内部字典都变成了一列...1.5, nan], [1.7, 2.4], [3.6, 2.9]]) 如果 DataFrame 的列是不同的数据类型,则返回的数组的数据类型将被选择以容纳所有列: In [83]: frame2....将单个元素或列表传递给[]运算符将选择列。 另一个用例是使用布尔 DataFrame 进行索引,比如通过标量比较生成的 DataFrame。...进行排序时,可以使用一个或多个列中的数据作为排序键。
# int, default None pd.read_csv(data, nrows=1000) 空值替换 na_values 一组用于替换 NA/NaN 的值。如果传参,需要制定特定列的空值。...如果有多列解析成一个列,自动会合并到新解析的列,去掉此列,如果设置为 True 则会保留。...Pandas 尝试使用三种不同的方式解析,如果遇到问题则使用下一种方式。...zip”或“ .xz”结尾的字符串,则使用gzip,bz2,zip或xz,否则不进行解压缩。 如果使用“ zip”,则ZIP文件必须仅包含一个要读取的数据文件。设置为“None”将不进行解压缩。...如果为False,则这些“坏行”将从返回的DataFrame中删除。 请参阅下面的坏行。
None代替丢失值 第一个被Pandas使用的哨兵值是None, 由于None是Python对象,所以它并不适合所有情况,只能用于数组的类型为对象的情况。...NaN 代替丢失值 另外一中哨兵是使用NaN,它时一种特殊的浮点型数据,可以被所有的系统识别。...image.png 从DataFrame中无法删除单个的值,只能删除整行或者整列数据。...df.dropna() 如果axis为1,则删除出现NA的列: df.dropna(axis='columns') 但是这种处理方式还是过于粗暴,有没有更为精细的控制呢?...Pandas提供了更为精细的控制,通过参数how和thresh来控制。 how的默认值为any, 也就是说任意行或者列只要出现NA值就删除,如果修改为all,则只有所有值都为NA的时候才会删除。
领取专属 10元无门槛券
手把手带您无忧上云