首页
学习
活动
专区
圈层
工具
发布
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    玩转Pandas,让数据处理更easy系列6

    ,让数据处理更easy系列5 实践告诉我们Pandas的主要类DataFrame是一个二维的结合数组和字典的结构,因此对行、列而言,通过标签这个字典的key,获取对应的行、列,而不同于Python,...Numpy中只能通过位置找到对应行、列,因此Pandas是更强大的具备可插可删可按照键索引的工具库。...03 Groupby:分-治-合 group by具体来说就是分为3步骤,分-治-合,具体来说: 分:基于一定标准,splitting数据成为不同组 治:将函数功能应用在每个独立的组上 合:收集结果到一个数据结构上...([ 'A', 'B'] ) 05 选择分组 分组后返回的对象类型为:DataFrameGroupBy,我们看下按照列标签'A'分组后,因为'A'的可能取值为:foo, bar ,所以分为了两组,通过DataFrameGroupBy...如果我们想看下每组的第一行,可以调用 first(),可以看到是每个分组的第一个,last()显示每组的最后一个: agroup.first() ?

    3.2K20

    【Python】基于多列组合删除数据框中的重复值

    本文介绍一句语句解决多列组合删除数据框中重复值的问题。 一、举一个小例子 在Python中有一个包含3列的数据框,希望根据列name1和name2组合(在两行中顺序不一样)消除重复项。...二、基于两列删除数据框中的重复值 1 加载数据 # coding: utf-8 import os #导入设置路径的库 import pandas as pd #导入数据处理的库...现希望根据这两列组合消除重复项。 打印原始数据行数: print(df.shape) 得到结果: (130, 3) 由于每两行中有一行是重复的,希望数据处理后得到一个65行3列的去重数据框。...经过这个函数就可以解决两行中值的顺序不一致问题。因为集合是无序的,只要值相同不用考虑顺序。 duplicated():判断变成冻结集合的列是否存在重复值,若存在标记为True。...4 做一个小实验 如果仅仅变成无序集合,set函数也可以做到。我们来看下用set替换frozenset是否可行。

    21.4K30

    Python Pandas PK esProc SPL,谁才是数据预处理王者?

    SPL只有两种集合,序列(类似List)和序表,前者是后者的基础,后者是有结构的前者,序表分组后的集合是序列,两者关系清楚泾渭分明转化容易,学习和编码的成本都很低。...SPL对记录集合的集合运算支持较好,针对来源于同一集合的子集,可使用高性能集合运算函数,包括交集isect、并集union、差集diff,对应的中缀运算符是^、&、\。...,先循环每项贷款,再循环生成该项贷款的每一期,然后将各期明细转置为DataFrame,并追加到事先准备好的list里,继续循环下一项贷款,循环结束后将list里的多个小DataFrame合并为一个大DataFrame...几乎一样,但因为语言整体性强,两层循环可以用一个news函数实现,也不需要麻烦的类型转换,因此代码大幅简化。...,每段分别排序,分别写入N个临时文件;再打开N个临时文件,并维持一个N个成员的数组,指向每个临时文件的当前读取位置,初始位置是第一条记录;之后比较该数组对应的N条记录,将最小记录i写入结果文件,并下移i

    3.9K20

    【愚公系列】2023年07月 Pandas数据分析之DataFrames

    或记住它): 7.结合DataFrames Pandas有三个函数,concat、merge和join,它们做同样的事情:将来自多个dataframe的信息合并为一个。...7.1 垂直叠加 这可能是将两个或多个dataframe合并为一个的最简单方法:您获取第一个dataframe中的行,并将第二个dataframe中的行追加到底部。...就像1:1关系一样,在Pandas中连接一对1:n相关的表,你有两种选择。如果要合并的列或者不在索引中,并且可以丢弃碰巧在两张表的索引中都存在的列,则使用merge。...7.5 插入和删除 由于DataFrame是列的集合,因此将这些操作应用到行上比应用到列上更容易。...首先,你可以使用一个名称来指定要分组的列,如下图所示: 如果没有as_index=False, Pandas将进行分组的列指定为索引。

    1K10

    数据结构 第17讲 沟通无限校园网——最小生成树(kruskal算法)

    (5)合并 结点4和结点5集合号不同,即属于两个不同连通分支,则将边(4,5)加入边集TE,执行合并操作将两个连通分支所有结点合并为一个集合;假设我们把小的集合号赋值给大的集合号,那么5号结点的集合号也改为...(7)合并 结点3和结点7集合号不同,即属于两个不同连通分支,则将边(3,7)加入边集TE,执行合并操作将两个连通分支所有结点合并为一个集合;假设我们把小的集合号赋值给大的集合号,那么3号结点的集合号也改为...(9)合并 结点4和结点7集合号不同,即属于两个不同连通分支,则将边(4,7)加入边集TE,执行合并操作将两个连通分支所有结点合并为一个集合;假设我们把小的集合号赋值给大的集合号,那么4、5号结点的集合号都改为...(15)合并 结点5和结点6集合号不同,即属于两个不同连通分支,则将边(5,6)加入边集TE,执行合并操作将两个连通分支所有结点合并为一个集合;假设我们把小的集合号赋值给大的集合号,那么6号结点的集合号都改为...(19)合并 结点1和结点2集合号不同,即属于两个不同连通分支,则将边(1,2)加入边集TE,执行合并操作将两个连通分支所有结点合并为一个集合;假设我们把小的集合号赋值给大的集合号,那么2、3、4、5

    1.5K20

    单列文本拆分为多列,Python可以自动化

    示例文件包含两列,一个人的姓名和出生日期。 图2 我们的任务如下: 1.把名字和姓氏分开 2.将出生日期拆分为年、月和日 让我们将数据加载到Python中。...在这里,我特意将“出生日期”列中的类型强制为字符串,以便展示切片方法。实际上,pandas应该自动检测此列可能是datetime,并为其分配datetime对象,这使得处理日期数据更加容易。...看一个例子: 图6 上面的示例使用逗号作为分隔符,将字符串拆分为两个单词。从技术上讲,我们可以使用字符作为分隔符。注意:返回结果是两个单词(字符串)的列表。 那么,如何将其应用于数据框架列?...让我们在“姓名”列中尝试一下,以获得名字和姓氏。 图7 拆分是成功的,但是当我们检查数据类型时,它似乎是一个pandas系列,每行是包含两个单词的列表。...我们想要的是将文本分成两列(pandas系列),需要用到split()方法的一个可选参数:expand。当将其设置为True时,可以将拆分的项目返回到不同的列中。

    8.6K10

    Pandas图鉴(三):DataFrames

    Pandas 给 NumPy 数组带来的两个关键特性是: 异质类型 —— 每一列都允许有自己的类型 索引 —— 提高指定列的查询速度 事实证明,这些功能足以使Pandas成为Excel和数据库的强大竞争者...DataFrames 数据框架的剖析 Pandas的主要数据结构是一个DataFrame。它捆绑了一个二维数组,并为其行和列加上标签。...df.dtypes返回列的类型。 df.shape返回行和列的数量。 df.info()总结了所有相关信息 还可以将一个或几个列设置为索引。...垂直stacking 这可能是将两个或多个DataFrame合并为一个的最简单的方法:你从第一个DataFrame中提取行,并将第二个DataFrame中的行附加到底部。...就像原来的join一样,on列与第一个DataFrame有关,而其他DataFrame是根据它们的索引来连接的。 插入和删除 由于DataFrame是一个列的集合,对行的操作比对列的操作更容易。

    2.5K20

    Pandas用的6不6,来试试这道题就能看出来

    在上述示例数据中,用户A和用户B的多组行为间,均存在一定的起止时间交叉,例如用户A的两个行为起止时间分别为[3, 6]和[4, 7](同时,这里的两组行为开始时间先后顺序还是错的),存在交叉,所以可合并为...[3, 7];类似地,用户B的两个行为起止时间分别为[4, 7]和[6, 8],也可合并为[4, 8]。...这就涉及到Pandas中的一个有用的API——explode,即将一个序列分裂成多行,从如下的explode函数说明文档中可以看出,它接收一个或多个列名作为参数(即要拆分的列),当该列的取值是一个列表型的元素时...至此,已经完成了大部分功能实现,仅差最后一步,即将各用户的历次合并后的行为起止时间拆分为两列,分别表示开始和结束时间,这一过程可直接调用pd.Series实现重命名即可。...最后给出这个需求的pandas一句代码完整实现过程: ? 一个现实需求,对应多个数据处理小技巧,这真是实践出真知啊! ?

    1.8K10

    Pandas进阶修炼120题,给你深度和广度的船新体验

    pandas as pd df = pd.read_excel('pandas120.xlsx') 22.查看df数据前5行 df.head() 23.将salary列数据转换为最大值与最小值的平均值...categories del df['categories'] # 等价于 df.drop(columns=['categories'], inplace=True) 35.将df的第一列与第二列合并为新的一列...df['test'] = df['education']+df['createTime'] df 36.将education列与salary列合并为新的一列 #备注:salary为int类型,操作与...,成一个新表 pd.concat([df[:1], df[-2:-1]]) 39.将第8行数据添加至末尾 df.append(df.iloc[7]) 40.查看每列的数据类型 df.dtypes...,df2,df3按照行合并为新DataFrame df = pd.concat([df1,df2,df3],axis=0,ignore_index=True) df 86.将df1,df2,df3按照列合并为新

    6.8K31

    一文看明白并查集

    并查集可以进行集合合并的操作(并) 并查集可以查找元素在哪个集合中(查) 并查集维护的是一堆集合(集) 对于并查集我们需要知道两个信息 元素的值 集合的标号 用什么样的数据结构表示并查集?...初始时每个节点都是一个单独的集合,父节点指向自己, 如果要合并两个集合,那么将a的父节点设为b,将a插入到b节点下充当子节点 那么如何判断是否是同一集合呢?...合并为同一集合: p[find(a)] = find(b); 查找是否同一集合 find(a) == find(b) 如果想知道每一个集合的数量呢?...我们引入一个size集合,存储每个节点自己的数量+子孙节点的数量, 那么祖宗节点的size就是整个集合的数量,即size[find(a)] 初始化: for (int i = 1; i <=n; i...++) { p[i]=i; size[i]=1; } 合并为同一集合: p[find(a)] = find(b); size[find(b)]+

    28410

    盘点 Pandas 中用于合并数据的 5 个最常用的函数!

    df0.merge(df1.rename(columns={"c": "a"}), on="a", how="inner") on 参数定义两个 DataFrame 对象将合并到哪些列...combine 的特殊之处,在于它接受一个函数参数。此函数采用两个系列,每个系列对应于每个 DataFrame 中的合并列,并返回一个系列作为相同列的元素操作的最终值。听起来很混乱?...在两列 a 和两列 b 之间,taking_larger_square 取较大列中值的平方。...append 函数专门用于将行附加到现有 DataFrame 对象,创建一个新对象。我们先来看一个例子。...他们分别是: concat[1]:按行和按列 合并数据; join[2]:使用索引按行合 并数据; merge[3]:按列合并数据,如数据库连接操作; combine[4]:按列合并数据,具有列间(相同列

    4.1K30

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

    所有可选依赖项均可使用 pandas[all] 安装,具体的依赖项集合列在下面的各个部分中。 性能依赖项(推荐) 注意 强烈建议您安装这些库,因为它们提供了速度改进,特别是在处理大数据集时。...转至用户指南 在用户指南的关于 使用 describe 进行汇总的部分中查看更多选项 注意 这只是一个起点。与电子表格软件类似,pandas 将数据表示为具有列和行的表格。...记住 导入包,即 import pandas as pd 数据表以 pandas 的 DataFrame 形式存储 DataFrame 中的每一列都是一个 Series 您可以通过将方法应用于...转到用户指南 在用户��南的关于使用 describe 进行聚合部分查看更多关于describe的选项 注意 这只是一个起点。与电子表格软件类似,pandas 将数据表示为具有列和行的表格。...记住 导入包,即import pandas as pd 数据表以 pandas DataFrame的形式存储 每个DataFrame中的列都是一个Series 你可以通过将方法应用于

    3.8K10

    Pandas 25 式

    用这种方式转换第三列会出错,因为这列里包含一个代表 0 的下划线,pandas 无法自动判断这个下划线。...调用 read_csv() 函数读取生成器表达式里的每个文件,把读取结果传递给 concat() 函数,然后合并为一个 DataFrame。...用多个文件建立 DataFrame ~ 按列 上个技巧按行合并数据集,但是如果多个文件包含不同的列,该怎么办? 本例将 drinks 数据集分为了两个 CSV 文件,每个文件都包含 3 列。 ?...把字符串分割为多列 创建一个 DataFrame 示例。 ? 把姓名列分为姓与名两列,用 str.split() 方法,按空格分割,并用 expand 关键字,生成一个新的 DataFrame。 ?...年龄列有 1 位小数,票价列有 4 位小数,如何将这两列显示的小数位数标准化? 用以下代码让这两列只显示 2 位小数。 ? 第一个参数是要设置的选项名称,第二个参数是 Python 的字符串格式。

    10K00

    Pandas进阶修炼120题|当Pandas遇上NumPy

    本文接着更新Pandas进阶修炼120题,Pandas的强大不仅仅因为它自身的强大,更在于当它和NumPy、Matplotlib、Sklearn等库结合使用时发挥的巨大威力,本期就挑选了一些Pandas...,df2,df3按照行合并为新DataFrame 难度:⭐⭐ 答案 df = pd.concat([df1,df2,df3],axis=0,ignore_index=True) 86 数据创建 题目:将...df1,df2,df3按照列合并为新DataFrame 难度:⭐⭐ 期望结果 0 1 2 0 95 0 0.022492 1 22 5 -1.209494 2 3 10 0.876127 3 21 15...(df['col1'] % 5==0) 92 数据计算 题目:计算第一列数字前一个与后一个的差值 难度:⭐⭐ 答案 df['col1'].diff().tolist() 93 数据处理 题目:将col1...]) 95 数据查找 题目:查找第一列的局部最大值位置 难度:⭐⭐⭐⭐ 备注 即比它前一个与后一个数字的都大的数字 答案 tem = np.diff(np.sign(np.diff(df['col1']

    1.2K20

    数据分析篇 | PyCon 大咖亲传 pandas 25 式,长文建议收藏

    调用 read_csv() 函数读取生成器表达式里的每个文件,把读取结果传递给 concat() 函数,然后合并为一个 DataFrame。...用多个文件建立 DataFrame ~ 按列 上个技巧按行合并数据集,但是如果多个文件包含不同的列,该怎么办? 本例将 drinks 数据集分为了两个 CSV 文件,每个文件都包含 3 列。 ?...把字符串分割为多列 创建一个 DataFrame 示例。 ? 把姓名列分为姓与名两列,用 str.split() 方法,按空格分割,并用 expand 关键字,生成一个新的 DataFrame。 ?...把 Series 里的列表转换为 DataFrame 创建一个 DataFrame 示例。 ? 这里包含了两列,第二列包含的是 Python 整数列表。...年龄列有 1 位小数,票价列有 4 位小数,如何将这两列显示的小数位数标准化? 用以下代码让这两列只显示 2 位小数。 ? 第一个参数是要设置的选项名称,第二个参数是 Python 的字符串格式。

    8.7K20
    领券