首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Python 数据处理:Pandas库的使用

(pop1) print(frame3.values) 如果DataFrame各列的数据类型不同,由于 NumPy 数组存储的数据类型需要一致,则值数组的dtype就会选用能兼容所有列的数据类型:...(frame + series2) 如果你希望匹配行且在列上广播,则必须使用算术运算方法。...如果某个索引对应多个值,则返回一个Series;而对应单个值的,则返回一个标量值: print(obj['a']) print(obj['c']) 这样会使代码变复杂,因为索引的输出类型会根据标签是否有重复发生变化...与isin类似的是Index.get_indexer方法,它可以给你一个索引数组,从可能包含重复值的数组到另一个不同值的数组: to_match = pd.Series(['c', 'a', '...计算Series中的唯一值数组,按发现的顺序返回 value_counts 返回一个Series,其索引为唯一值,其值为频率,按计数值降序排列 有时,你可能希望得到DataFrame中多个相关列的一张柱状图

22.8K10

Pandas知识点-合并操作merge

merge()方法自动将所有列同时作为连接列,合并时取并集,所有的连接列在结果中都返回了,得到的效果就与按行合并一样。(理解how参数和on参数后就会明白,下文马上介绍)。 二连接方式 ---- ?...合并时,先找到两个DataFrame中的连接列key,然后将第一个DataFrame中key列的每个值依次与第二个DataFrame中的key列进行匹配,匹配到一次结果中就会有一行数据。...假如将k0~k2都改成k,则left中的每一个k可以与right中的k匹配到三次(many_to_many,后面会介绍),共匹配9次,结果会有9行。...left_on和right_on可以与left_index和right_index混合使用,当指定了其中一个DataFrame的连接列时,必须同时指定另一个DataFrame的连接列,否则会报错。...在新增的列中,如果连接列同时存在于两个DataFrame中,则对应的值为both,如果连接列只存在其中一个DataFrame中,则对应的值为left_only或right_only。

4.3K30
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    python数据科学系列:pandas入门详细教程

    index/columns/values,分别对应了行标签、列标签和数据,其中数据就是一个格式向上兼容所有列数据类型的array。...这里提到了index和columns分别代表行标签和列标签,就不得不提到pandas中的另一个数据结构:Index,例如series中标签列、dataframe中行标签和列标签均属于这种数据结构。...或字典(用于重命名行标签和列标签) reindex,接收一个新的序列与已有标签列匹配,当原标签列中不存在相应信息时,填充NAN或者可选的填充值 set_index/reset_index,互为逆操作,...unique、nunique,也是仅适用于series对象,统计唯一值信息,前者返回唯一值结果列表,后者返回唯一值个数(number of unique) ?...;sort_values是按值排序,如果是dataframe对象,也可通过axis参数设置排序方向是行还是列,同时根据by参数传入指定的行或者列,可传入多行或多列并分别设置升序降序参数,非常灵活。

    15K20

    pandas入门:Series、DataFrame、Index基本操作都有了!

    作者:李明江 张良均 周东平 张尚佳 来源:大数据DT(ID:hzdashuju) pandas提供了众多类,可满足不同的使用需求,其中常用的类如下所示。...values:以ndarray的格式返回DataFrame对象的所有元素 index:返回DataFrame对象的Index columns:返回DataFrame对象的列标签 dtypes:返回DataFrame...表示删除的行或列的标签。无默认值 axis:接收0或1。表示执行操作的轴向,其中0表示删除行,1表示删除列。默认为0 levels:接收int或者索引名。表示索引级别。...:计算两个Index对象的并集 isin:计算一个Index是否在另一个Index,返回bool数组 delete:删除指定Index的元素,并得到新的Index drop:删除传入的值,并得到新的Index...insert:将元素插入到指定Index处,并得到新的Index unique:计算Index中唯一值的数组 应用Index对象的常用方法如代码清单6-20所示。

    4.5K30

    Pandas 的Merge函数详解

    但是如果两个DataFrame都包含两个或多个具有相同名称的列,则这个参数就很重要。 我们来创建一个包含两个相似列的数据。...让我们看看如果使用默认方法合并两个DataFrame会发生什么。 pd.merge(customer, order) 只剩下一行了,这是因为merge函数将使用与键名相同的所有列来合并两个数据集。...下图显示了Inner Join图,其中只选择了Customer和Order数据集上的列和/或索引之间匹配的值。...如果在正确的DataFrame中有多个重复的键,则只有最后一行用于合并过程。例如将更改delivery_date数据,使其具有多个不同产品的“2014-07-06”值。...另一个可以使用的策略是就近策略。在这个策略中使用向后或向前策略;取绝对距离中最近的那个。如果有多个最接近的键或精确匹配,则使用向后策略。

    32330

    直观地解释和可视化每个复杂的DataFrame操作

    Melt Melt可以被认为是“不可透视的”,因为它将基于矩阵的数据(具有二维)转换为基于列表的数据(列表示值,行表示唯一的数据点),而枢轴则相反。...考虑一个二维矩阵,其一维为“ B ”和“ C ”(列名),另一维为“ a”,“ b ”和“ c ”(行索引)。 我们选择一个ID,一个维度和一个包含值的列/列。...包含值的列将转换为两列:一列用于变量(值列的名称),另一列用于值(变量中包含的数字)。 ? 结果是ID列的值(a,b,c)和值列(B,C)及其对应值的每种组合,以列表格式组织。...作为另一个示例,当级别设置为0(第一个索引级别)时,其中的值将成为列,而随后的索引级别(第二个索引级别)将成为转换后的DataFrame的索引。 ?...默认情况下,合并功能执行内部联接:如果每个DataFrame的键名均未列在另一个键中,则该键不包含在合并的DataFrame中。

    13.3K20

    《利用Python进行数据分析·第2版》第5章 pandas入门5.1 pandas的数据结构介绍5.2 基本功能5.3 汇总和计算描述统计5.4 总结

    如果赋值的是一个Series,就会精确匹配DataFrame的索引,所有的空位都将被填上缺失值: In [58]: val = pd.Series([-1.2, -1.5, -1.7], index=[..., 3.6]]) 如果DataFrame各列的数据类型不同,则值数组的dtype就会选用能兼容所有列的数据类型: In [75]: frame2.values Out[75]: array([[2000...如果某个索引对应多个值,则返回一个Series;而对应单个值的,则返回一个标量值: In [225]: obj['a'] Out[225]: a 0 a 1 dtype: int64 In...的corrwith方法,你可以计算其列或行跟另一个Series或DataFrame之间的相关系数。...=object) 返回的唯一值是未排序的,如果需要的话,可以对结果再次进行排序(uniques.sort())。

    6.1K70

    Python科学计算之Pandas

    一个series是一个一维的数据类型,其中每一个元素都有一个标签。如果你阅读过这个系列的关于Numpy的文章,你就可以发现series类似于Numpy中元素带标签的数组。...如果你读过这一系列中Numpy那一篇帖子,你可能会记得一项技术叫做‘boolean masking’,即我们可以在数组上运行一个条件语句来获得对应的布尔值数组。...好,我们也可以在Pandas中做同样的事。 ? 上述代码将范围一个布尔值的dataframe,其中,如果9、10月的降雨量低于1000毫米,则对应的布尔值为‘True’,反之,则为’False’。...这里,loc和iloc一样会返回你所索引的行数据的一个series。唯一的不同是此时你使用的是字符串标签进行引用,而不是数字标签。 ix是另一个常用的引用一行的方法。...这确实是唯一的熟悉Pandas以及其他这一系列文章中提到的库的方式。再加上你永远不知道的,你会找到一些你感兴趣的东西的。

    2.9K00

    Pandas笔记-基础篇

    将列表或者数组赋值给某个列时,其长度必须与DataFrame长度匹配。如果赋值的是Series,就会精准匹配DataFrame的索引,所有空位都将被填上缺失值。...并得到新的index is_monotonic 当个元素均大于等于前一个元素时,返回True is_union 当index没有重复值时,返回True unique 计算index中唯一值得数组 基本功能...的单个列或一组列,在一些特殊情况下回比较便利:布尔型数组(过滤行)、切片(行切片)、布尔型DataFrame(根据条件设置值) obj.ix[val] 选取DataFrame的单个行或一组行 obj.ix...[:, val] 选取单个列或列子集 obj.ix[val1, val2] 同时选取行和列 reindex方法 将一个或多个轴匹配到新索引 xs方法 根据标签选取单行或单列,并返回一个Series icol...、irow 根据整数位置选取单列或单行,并返回一个Series get_value、set_value方法 根据行标签和列标签选取单个值 算术运算和数据对齐 pandas最重要的一个功能是,它可以对不同索引的对象进行算术运算

    66320

    Stata与Python等效操作与调用

    在这些情况下,给列起一个名字很有意义,这样就知道要处理的内容。long.unstack('time') 进行 reshape ,它使用索引 'time' 并创建一个新的它具有的每个唯一值的列。...请注意,这些列现在具有多个级别,就像以前的索引一样。这是标记索引和列的另一个理由。如果要访问这些列中的任何一列,则可以照常执行操作,使用元组在两个级别之间进行区分。...要在 DataFrame 列中查找缺失值,使用以下任何一种: df[].isnull() 返回一个每行值为 True 和 False 值的向量 df[]。...np.isnan()函数接受一个数组数组(DataFrame 是数组的一种特殊类型)并为每个元素返回 True 或 False 。...另一个重要的区别是 np.nan 是浮点数据类型,因此 DataFrame 的任何列包含缺失数字的将是浮点型的。如果一列整型数据改变了,即使只有一行 np.nan ,整列将被转换为浮点型。

    10K51

    pandas数据清洗,排序,索引设置,数据选取

    =True) 更改数据格式astype() isin #计算一个“Series各值是否包含传入的值序列中”的布尔数组 unique #返回唯一值的数组...value_counts #返回一个Series,其索引为唯一值,值为频率,按计数降序排列 ---- 数据清洗 丢弃值drop() df.drop(labels, axis=1)# 按列...返回唯一值的数组(类型为array) df.drop_duplicates(['k1'])# 保留k1列中的唯一值的行,默认保留第一行 df.drop_duplicates(['k1','k2'],...() 更新index或者columns, 默认:更新index,返回一个新的DataFrame # 返回一个新的DataFrame,更新index,原来的index会被替代消失 # 如果dataframe...的每一个元素施加一个函数 func = lambda x: x+2 df.applymap(func), dataframe每个元素加2 (所有列必须数字类型) contains # 使用DataFrame

    3.3K20

    合并Pandas的DataFrame方法汇总

    ,“右联接”将返回左DataFrame中与右DataFrame匹配的所有值: user_id first_name last_name email...这种追加的操作,比较适合于将一个DataFrame的每行合并到另外一个DataFrame的尾部,即得到一个新的DataFrame,它包含2个DataFrames的所有的行,而不是在它们的列上匹配数据。...DataFrames ,它只将另一个DataFrame添加到第一个DataFrame并返回它的副本。...如果设置为 True ,它将忽略原始值并按顺序重新创建索引值 keys:用于设置多级索引,可以将它看作附加在DataFrame左外侧的索引的另一个层级的索引,它可以帮助我们在值不唯一时区分索引 用与 df2...这样,就要保留第一个DataFrame中的所有非缺失值,同时用第二个DataFrame可用的非缺失值(如果有这样的非缺失值)替换第一个DataFrame中的所有NaN。

    5.7K10

    python数据分析——数据的选择和运算

    关键技术:多维数组中对行的选择,使用[ ]运算符只对行号选择即可,具体程序代码如下所示: 花式索引与布尔值索引 ①布尔索引 我们可以通过一个布尔数组来索引目标数组,以此找出与布尔数组中值为True...关键技术:与上面的例子不一样,这个例子返回的结果是一个一维数组。具体程序代码如下所示: 【例10】根据上面的例子引申,把上述数组中,小于或等于15的数归零。...数据获取 ①列索引取值 使用单个值或序列,可以从DataFrame中索引出一个或多个列。...如果左表或右表中都没有出现组合键,则联接表中的值将为NA。 【例21】采用上面例题的dataframe,使用Left Join左连接方式合并数据帧。...程序代码如下所示: 三、算术运算与比较运算 通过一些实例操作来介绍常用的运算函数,包括一个数组内的求和运算、求积运算,以及多个 数组间的四则运算。

    19310

    Python 数据分析(PYDA)第三版(二)

    1.5, nan], [1.7, 2.4], [3.6, 2.9]]) 如果 DataFrame 的列是不同的数据类型,则返回的数组的数据类型将被选择以容纳所有列: In [83]: frame2....insert() 通过在索引i处插入元素来计算新的索引 is_monotonic 如果每个元素大于或等于前一个元素则返回True is_unique 如果索引没有重复值则返回True | unique...,匹配行,您必须使用其中一个算术方法并指定匹配索引。...的corrwith方法,您可以计算 DataFrame 的列或行与另一个 Series 或 DataFrame 之间的成对相关性。...,以便将其对齐到另一个不同值的数组;有助于数据对齐和连接类型操作 unique 计算 Series 中唯一值的数组,按观察顺序返回 value_counts 返回一个 Series,其唯一值作为索引,频率作为值

    29300

    Pandas图鉴(三):DataFrames

    df.shape返回行和列的数量。 df.info()总结了所有相关信息 还可以将一个或几个列设置为索引。...s.iloc[0],只有在没有找到时才会引发异常;同时,它也是唯一一个支持赋值的:df[...].iloc[0] = 100,但当你想修改所有匹配时,肯定不需要它:df[...] = 100。...所有的算术运算都是根据行和列的标签来排列的: 在DataFrames和Series的混合操作中,Series的行为(和广播)就像一个行-向量,并相应地被对齐: 可能是为了与列表和一维NumPy向量保持一致...注意:要小心,如果第二个表有重复的索引值,你会在结果中出现重复的索引值,即使左表的索引是唯一的 有时,连接的DataFrame有相同名称的列。...然而,另一个快速、通用的解决方案,甚至适用于重复的行名,就是使用索引而不是删除。

    44420

    Python数据分析笔记——Numpy、Pandas库

    Numpy库 Numpy最重要的一个特点是就是其N维数组对象,即ndarray,ndarray是一个通用的同构数据多维容器,其中的所有元素必须是相同类型的。...DataFrame既有行索引也有列索引,其中的数据是以一个或多个二维块存放的,而不是列表、字典或别的一维数据结构。...如果指定了列序列、索引,则DataFrame的列会按指定顺序及索引进行排列。 也可以设置DataFrame的index和columns的name属性,则这些信息也会被显示出来。...(3)获取DataFrame的值(行或列) 通过查找columns值获取对应的列。(下面两种方法) 通过索引字段ix查找相应的行。 (4)对列进行赋值处理。 对某一列可以赋一个标量值也可以是一组值。...也可以给某一列赋值一个列表或数组,其长度必须跟DataFrame长度相匹配。如果赋值的是一个Series,则对应的索引位置将被赋值,其他位置的值被赋予空值。

    6.4K80

    盘点66个Pandas函数,轻松搞定“数据清洗”!

    df.sample(3) 输出: 如果要检查数据中各列的数据类型,可以使用.dtypes;如果想要值查看所有的列名,可以使用.columns。...df["迟到天数"] = df["迟到天数"].clip(0,31) 唯一值,unique()是以数组形式返回列的所有唯一值,而nunique()返回的是唯一值的个数。...df["gender"].unique() df["gender"].nunique() 输出: 在数值数据操作中,apply()函数的功能是将一个自定义函数作用于DataFrame的行或者列;applymap...列操作 数据清洗时,会将带空值的行删除,此时DataFrame或Series类型的数据不再是连续的索引,可以使用reset_index()重置索引。...如果想直接筛选包含特定字符的字符串,可以使用contains()这个方法。 例如,筛选户籍地址列中包含“黑龙江”这个字符的所有行。

    3.8K11

    Pandas 2.2 中文官方教程和指南(八)

    来自标量值 如果data是一个标量值,则必须提供一个索引。该值将被重复以匹配索引的长度。...如果传递了索引和/或列,你将保证结果 DataFrame 的索引和/或列。因此,一个 Series 字典加上一个特定索引将丢弃所有与传递索引不匹配的数据。...其余的命名元组(或元组)只是被解包,它们的值被提供给 `DataFrame` 的行。 如果任何一个元组比第一个 `namedtuple` 短,则相应行中的后续列将被标记为缺失值。...如果传递了索引和/或列,则保证了结果 DataFrame 的索引和/或列。因此,字典的 Series 加上特定索引将丢弃所有与传递索引不匹配的数据。...如果传递了索引,则它必须与数组的长度相同。如果未传递索引,则结果将是 range(n),其中 n 是数组长度。

    31700
    领券