我们将在重新索引部分中讨论重新索引/符合新标签集的基础知识。 数据对齐和算术 DataFrame对象之间的数据对齐会自动在**列和索引(行标签)**上对齐。同样,结果对象将具有列和行标签的并集。...NaN NaN 在DataFrame和Series之间进行操作时,默认行为是将Series的索引与DataFrame的列对齐,从而以行方式进行广播。...NaN NaN 在DataFrame和Series之间进行操作时,默认行为是将Series的索引与DataFrame的列进行对齐,因此以行方式进行广播。...我们将在重新索引部分讨论重新索引/符合新标签集的基础知识。 数据对齐和算术 DataFrame 对象之间的数据对齐会自动在列和索引(行标签)上进行对齐。同样,结果对象将具有列和行标签的并集。...NaN NaN 当在 DataFrame 和 Series 之间进行操作时,默认行为是将 Series 的 索引 与 DataFrame 的 列 对齐,从而进行按行广播。
类似一维数组的对象 由数据和索引组成 索引(index)在左,数据(values)在右 索引是自动创建的 1....NaN Series的对齐运算 1....NaN 6 NaN 7 NaN 8 NaN 9 NaN dtype: float64 DataFrame的对齐运算 DataFrame按行、列索引对齐 示例代码:...DataFrame的对齐运算 示例代码: # DataFrame对齐操作 df1 + df2 运行结果: a b c 0 2.0 2.0 NaN 1 2.0 2.0 NaN...2 NaN NaN NaN 填充未对齐的数据进行运算 1. fill_value 使用add, sub, div, mul的同时, 通过fill_value指定填充值,未对齐的数据将和填充值做运算
比如,一元运算不修改行索引和列索引;而对于二元操作,Pandas会自动对齐行索引。...没有对应的键值,则赋值为NaN。...(B, fill_value=0) 输出为: 0 2.0 1 5.0 2 9.0 3 5.0 dtype: float64 DataFrame中的索引对齐 当操作DataFrame...时,会通水对齐行和列。...image.png 同时操作DataFrame和Series的通用函数。 当同时操作DataFrame和Series对象时,行和列索引保持对齐。
通用函数:索引对齐 对于两个Series或DataFrame对象的二元操作,Pandas 将在执行操作的过程中对齐索引。这在处理不完整数据时非常方便,我们将在后面的一些示例中看到。...2 9.0 3 5.0 dtype: float64 ''' 数据帧中的索引对齐 在DataFrames上执行操作时,列和索引都会发生类似的对齐: A = pd.DataFrame(rng.randint...1 13.0 6.0 NaN 2 NaN NaN NaN 请注意,索引是正确对齐的,无论它们在两个对象中的顺序如何,并且结果中的索引都是有序的。...执行DataFrame和Series之间的操作时,与之相似,索引和列是保持对齐的。...1 -1.0 NaN 2.0 NaN 2 3.0 NaN 1.0 NaN 索引和列的保留和对齐意味着,Pandas 中的数据操作将始终维护数据上下文,这可以防止在处理原始 NumPy 数组中的异构和
未引用 DataFrame 时,传递可调用的,不是实际要插入的值。这种方式常见于在操作链中调用 assign 的操作。...要想编写支持 3.6 之前或之后版本的 Python 代码,传递 assign 表达式时,要注意以下两点: 更新现有的列 在同一个 assign 引用刚建立的更新列 示例如下,更新列 “A”,然后,在创建...x: x["A"] + 2) Python 3.5 或更早版本的表达式在创建 B 列时引用的是 A 列的“旧”值 [1, 1, 1]。...重建索引介绍重建索引 / 遵循新标签集的基础知识。 数据对齐和运算 DataFrame 对象可以自动对齐列与索引(行标签)的数据。与上文一样,生成的结果是列和行标签的并集。...NaN NaN DataFrame 和 Series 之间执行操作时,默认操作是在 DataFrame 的列上对齐 Series 的索引,按行执行广播)操作。
Series的表现形式为索引在左值在右。没有制定索引时,自动创建一个0到N-1(N:数据长度)的整数型索引。...创建DataFrame 字典创建 最常用的方法时直接传入一个由等长列表或NumPy数组组成的字典。...字典嵌套创建 嵌套字典传给DataFrame时,外层字典的键作为列,内层键作为行索引 In[1]: pop = {'Nevada':{2001:2.4,2002:2.9}, .......1.7 2002 2.9 3.6 操作DataFrame 通过类似字典的方式,可以将DataFrame的列获取为一个Series。...注意:将列表或数组赋值给某个列时,其长度必须跟DataFrame的长度匹配;将Series赋值给一个列时,会精确匹配DataFrame的索引,空位将被用NaH替代。
s.isin([1,3]) NaN: 数据结构中如果字段为空或者不符合数字的定义时,用NaN表示。...s=pd.Series([1,2,3,4,np.NaN,5]) isnull()和notnull()用来判断NaN元素,返回布尔值。在通过布尔值可以取出不为空的值或者空值。...它能够通过标签对齐,其中标签不一致的值为NaN 二. pandas: 数据结构跟excel类似,类似于将Series使用场景应用的多维。各列的数据结构可以是不同类型的。...获取索引的列表:frame.index 获取所有的元素:frame.values 获取一列,用列名称即可:frame['price'],返回一个Series对象 另一种获取列的方法:frame.price...frame(frame.isin([1,'pen']))得到一个新的DataFrame,包含满足条件的值,其他值为NaN.
::: ::: tip 注意 编写注重性能的代码时,最好花些时间深入理解 reindex:预对齐数据后,操作会更快。两个未对齐的 DataFrame 相加,后台操作会执行 reindex。...(),可以用 axis 参数选择是在 DataFrame 的索引,还是列上对齐两个对象: In [218]: df.align(df2.iloc[0], axis=1) Out[218]: (...,该函数在处理标签时,必须返回一个值,而且生成的必须是一组唯一值。...简言之,基础迭代(for i in object)生成: Series :值 DataFrame:列标签 例如,DataFrame 迭代时输出列名: In [245]: df = pd.DataFrame...Series 里的每一行数据,该操作不会保留每行数据的数据类型,因为数据类型是通过 DataFrame 的列界定的。
重建索引会更改DataFrame的行列标签,以实现类似操作: 重新排序现有数据,以匹配一组新的标签 在没有标签数据的标签位置插入缺失(NA)标识 重建索引与其他对象对齐 重建一个对象的索引,轴被重建为和另一个对象相同...(7,3),columns=['col1','col2','col3']) df1 = df1.reindex_like(df2) 以上代码df1应该是3列10行,之后和df2对齐。...对齐操作列名应该匹配,无法对齐的列整列置为NAN。...填充时重新加注 reindex()可以添加参数method,指定填充方法: pad/ffill - 向前填充 bfill / backfill - 向后填充 nearest - 从最近的索引值填充...limit参数在重建索引时提供填充的控制,限制指定连续匹配的次数: df1 = pd.DataFrame(np.random.randn(6,3),columns=['col1','col2','col3
Data Analysis) 序列(Series) 数据帧(DataFrame) 重索引 删除条目 索引,选择和过滤 算术和数据对齐 函数应用和映射 排序和排名 带有重复值的轴索引 汇总和计算描述性统计量...False bar False baz False qux True dtype: bool ''' 在算术运算中,Series自动对齐不同的索引数据: ser_3 + ser...每列可以是不同的类型。 DataFrame同时具有行索引和列索引,类似于Series的字典。行和列操作大致是对称实现的。 索引DataFrame时返回的列是底层数据的视图,而不是副本。...要获取副本,请使用Series的复制方法。...在DataFrame的列上匹配Series的索引,并向下广播行: ser_8 = df_10.ix[0] df_11 = df_10 - ser_8 df_11 a b c d 0 0.000000
frame2[column]适用于任何列的名,但是frame2.column只有在列名是一个合理的Python变量名时才适用。...笔记:在一开始设计pandas时,我觉得用frame[:, col]选取列过于繁琐(也容易出错),因为列的选择是非常常见的操作。我做了些取舍,将花式索引的功能(标签和整数)放到了ix运算符中。...e 0.0 f NaN g NaN dtype: float64 自动的数据对齐操作在不重叠的索引处引入了NA值。...NaN NaN NaN NaN 因为'c'和'e'列均不在两个DataFrame对象中,在结果中以缺省值呈现。...NaN 1 NaN NaN 在算术方法中填充值 在对不同索引的对象进行算术运算时,你可能希望当一个对象中某个轴标签在另一个对象中找不到时填充一个特殊值(比如0): In [165]: df1 = pd.DataFrame
头部数据 tail查看 DataFrame 尾部数据 转Numpy数组 数据统计摘要describe函数 横纵坐标转换位置 反向排列列数据 获取列数据 使用[]数组切片 用标签提取一行数据 用标签选择多列数据...Pandas 就像一把万能瑞士军刀,下面仅列出了它的部分优势 : 处理浮点与非浮点数据里的缺失数据,表示为 NaN; 大小可变:插入或删除 DataFrame 等多维对象的列; 自动、显式数据对齐:显式地将对象与一组标签对齐...,也可以忽略标签,在 Series、DataFrame 计算时自动与数据对齐; 强大、灵活的分组(group by)功能:拆分-应用-组合数据集,聚合、转换数据; 把 Python 和 NumPy 数据结构里不规则...多维数组存储二维或三维数据时,编写函数要注意数据集的方向,这对用户来说是一种负担;如果不考虑 C 或 Fortran 中连续性对性能的影响,一般情况下,不同的轴在程序里其实没有什么区别。...处理 DataFrame 等表格数据时,index(行)或 columns(列)比 axis 0 和 axis 1 更直观。
若未指定数据类型,pandas会根据传入的数据自动推断数据类型。 在使用pandas中的Series数据结构时,可通过pandas点Series调用。...在创建Series类对象或DataFrame类对象时,既可以使用自动生成的整数索引,也可以使用自定义的标签索引。无论哪种形式的索引,都是一个Index类的对象。...使用[]访问数据 变量[索引] 需要说明的是,若变量的值是一个Series类对象,则会根据索引获取该对象中对应的单个数据;若变量的值是一个DataFrame类对象,在使用“[索引]”访问数据时会将索引视为列索引...,进而获取该列索引对应的一列数据。...使用[]访问数据 由于分层索引的索引层数比单层索引多,在使用[]方式访问数据时,需要根据不同的需求传入不同层级的索引。
panel data是经济学中关于多维数据集的一个术语,在Pandas中也提供了panel的数据类型。...仅由一组数据即可产生简单的Series #DataFrame:一个表格型的数据结构,含有一组有序的列,每列可以是不同的值类型(数值、字符串、布尔值等),DataFrame既有行索引也有列索引,可以被看做是由...对象,都有索引对象 #索引对象负责管理轴标签和其他元数据(比如轴名称等) #通过索引可以从Series、DataFrame中取值或对某个位置的值重新赋值 #Series或者DataFrame自动化对齐功能就是通过索引进行的...中取值 #可以直接通过列索引获取指定列的数据 #要通过行索引获取指定行数据需要ix方法 data={'2017':['01','02','03','04'],'profits':[50,20,60,100...Series唯一值数组 #value_counts方法,用于计算一个Series中各值出现的频率 #isin方法,用于判断矢量化集合的成员资格,可用于选取Series中或者DataFrame中列中数据的子集
合并之后,两张表的行数不增加,列数是两张表的列数之和。...,从在不重合的键,方式(inner、outer、left、right) on 用来对齐的列名,一定要保证左表和右表存在相同的列名。...left_on 左表对齐的列,可以是列名。也可以是DataFrame同长度的arrays right_on 右表对齐的列,可以是列名。...2 two 2 NaN 特性示例(3) 多键连接时将连接键做成列表传入。...NaN NaN 3 NaN NaN NaN three c 2.0 join join方法将两个DataFrame中不同的列索引合并成为一个DataFrame 参数的意义与merge
是数据清洗的重要过程,可以按索引对齐进行运算,如果没对齐的位置则补NaN,最后也可以填充NaN Series的对齐运算 1....NaN 6 NaN 7 NaN 8 NaN 9 NaN dtype: float64 DataFrame的对齐运算 1....DataFrame按行、列索引对齐 示例代码: df1 = pd.DataFrame(np.ones((2,2)), columns = ['a', 'b']) df2 = pd.DataFrame(np.ones...DataFrame的对齐运算 示例代码: # DataFrame对齐操作 df1 + df2 运行结果: a b c 0 2.0 2.0 NaN 1 2.0 2.0 NaN...2 NaN NaN NaN 填充未对齐的数据进行运算 1. fill_value 使用add, sub, div, mul的同时, 通过fill_value指定填充值,未对齐的数据将和填充值做运算
示例 重建索引与其他对象对齐 填充时重新加注 重建索引时的填充限制 重命名 重新索引会更改DataFrame的行标签和列标签。重新索引意味着符合数据以匹配特定轴上的一组给定的标签。...可以通过索引来实现多个操作: 重新排序现有数据以匹配一组新的标签 在没有标签数据的标签位置插入缺失值(NA)标记 示例 import pandas as pd import numpy as np N...2 2016-01-03 Low NaN 5 2016-01-06 High NaN 重建索引与其他对象对齐 有时可能希望采取一个对象和重新索引,其 轴 被标记为与另一个对象相同 import...列名称应该匹配,否则将为整个列标签添加NAN。...制参数在重建索引时提供对填充的额外控制。
领取专属 10元无门槛券
手把手带您无忧上云