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

6个冷门但实用的pandas知识点

Python大数据分析 1 简介 pandas作为开展数据分析的利器,蕴含了与数据处理相关的丰富多样的API,使得我们可以灵活方便地对数据进行各种加工,但很多pandas中的实用方法其实大部分人都是不知道的...的记录行顺序 有时候我们需要对数据框整体的行顺序进行打乱,譬如在训练机器学习模型时,打乱原始数据顺序后取前若干行作为训练集后若干行作为测试集,这在pandas中可以利用sample()方法快捷实现。...sample()方法的本质功能是从原始数据中抽样行记录,默认为不放回抽样,其参数frac用于控制抽样比例,我们将其设置为1则等价于打乱顺序: df = pd.DataFrame({ 'V1':...range(5), 'V2': range(5) }) df.sample(frac=1) 图4 2.3 利用类别型数据减少内存消耗 当我们的数据框中某些列是由少数几种值大量重复形成时,会消耗大量的内存...在pandas中我们可以对单个Series查看hanans属性来了解其是否包含缺失值,而结合apply(),我们就可以快速查看整个数据框中哪些列含有缺失值: df = pd.DataFrame({

89130

6个冷门但实用的pandas知识点

图2   顺便介绍一下单列数据组成的数据框转为Series的方法: 利用squeeze()实现单列数据DataFrame转Series # 只有单列数据的DataFrame转为Series s.squeeze...图3 2.2 随机打乱DataFrame的记录行顺序   有时候我们需要对数据框整体的行顺序进行打乱,譬如在训练机器学习模型时,打乱原始数据顺序后取前若干行作为训练集后若干行作为测试集,这在pandas...图4 2.3 利用类别型数据减少内存消耗   当我们的数据框中某些列是由少数几种值大量重复形成时,会消耗大量的内存,就像下面的例子一样: import numpy as np pool = ['A',...图10 2.5 快速判断每一列是否有缺失值   在pandas中我们可以对单个Series查看hanans属性来了解其是否包含缺失值,而结合apply(),我们就可以快速查看整个数据框中哪些列含有缺失值...图11 2.6 使用rank()计算排名时的五种策略   在pandas中我们可以利用rank()方法计算某一列数据对应的排名信息,但在rank()中有参数method来控制具体的结果计算策略,有以下5

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

    pandas参数设置小技巧

    图2   在修改display.max_rows的参数值之后,我们的数据框只会显示指定行数的数据,中间的部分都会以省略号的形式显示,当我们的数据框行数较多,可以加大这个参数以显示更多行数据。...2 设置DataFrame最大显示列数   类似display.max_rows,通过修改display.max_columns我们可以调节最大显示的数据框列数(默认是20列),这在我们的数据框字段较多又想全部查看的时候很有用...图3 3 设置每列的最大显示宽度   对于一些单元格内容长度较长的数据譬如长文本,在查看数据框时过长的部分会被简化为省略号,而通过修改display.max_colwidth参数我们可以在必要时,使得超长的部分也显示出来...图4 4 指定小于某个数的元素显示为0   通过display.chop_threshold参数我们在不修改原始数据的情况下,指定数据框中绝对值小于阈值的数显示为0: ?...图6 6 设置info()方法中非缺失值检查的行数上限   针对数据框的info()方法可以帮助我们查看数据框的一些概览信息,譬如每一列对应的非缺失值个数。

    1.2K20

    pandas参数设置小技巧

    而pandas有着自己的一套「参数设置系统」,可以帮助我们在遇到不同的数据时灵活调节从而达到最好的效果,本文就将介绍pandas中常用的参数设置方面的知识。...: 图2 在修改display.max_rows的参数值之后,我们的数据框只会显示指定行数的数据,中间的部分都会以省略号的形式显示,当我们的数据框行数较多,可以加大这个参数以显示更多行数据。...2 设置DataFrame最大显示列数 类似display.max_rows,通过修改display.max_columns我们可以调节最大显示的数据框列数(默认是20列),这在我们的数据框字段较多又想全部查看的时候很有用...: 图3 3 设置每列的最大显示宽度 对于一些单元格内容长度较长的数据譬如长文本,在查看数据框时过长的部分会被简化为省略号,而通过修改display.max_colwidth参数我们可以在必要时,使得超长的部分也显示出来...: 图4 4 指定小于某个数的元素显示为0 通过display.chop_threshold参数我们在不修改原始数据的情况下,指定数据框中绝对值小于阈值的数显示为0: 图5 5 格式化浮点数 通过display.float_format

    1.1K10

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

    在准备关系数据时需要根据两列组合删除数据框中的重复值,两列中元素的顺序可能是相反的。 我们知道Python按照某些列去重,可用drop_duplicates函数轻松处理。...本文介绍一句语句解决多列组合删除数据框中重复值的问题。 一、举一个小例子 在Python中有一个包含3列的数据框,希望根据列name1和name2组合(在两行中顺序不一样)消除重复项。...二、基于两列删除数据框中的重复值 1 加载数据 # coding: utf-8 import os #导入设置路径的库 import pandas as pd #导入数据处理的库...由于原始数据是从hive sql中跑出来,表示商户号之间关系的数据,merchant_r和merchant_l中存在组合重复的现象。现希望根据这两列组合消除重复项。...打印原始数据行数: print(df.shape) 得到结果: (130, 3) 由于每两行中有一行是重复的,希望数据处理后得到一个65行3列的去重数据框。

    14.7K30

    没错,这篇文章教你妙用Pandas轻松处理大规模数据

    在这篇文章中,我们将介绍 Pandas 的内存使用情况,以及如何通过为数据框(dataframe)中的列(column)选择适当的数据类型,将数据框的内存占用量减少近 90%。...数据框的内部表示 在底层,Pandas 按照数据类型将列分成不同的块(blocks)。这是 Pandas 如何存储数据框前十二列的预览。 你会注意到这些数据块不会保留对列名的引用。...但这对原始数据框的影响并不大,因为本身整数列就非常少。 现在,让我们来对浮点型数列做同样的事情。...让我们创建一个原始数据框的副本,然后分配这些优化后的数字列代替原始数据,并查看现在的内存使用情况。 虽然我们大大减少了数字列的内存使用量,但是从整体来看,我们只是将数据框的内存使用量降低了 7%。...总结和后续步骤 我们已经了解到 Pandas 是如何存储不同类型的数据的,然后我们使用这些知识将 Pandas 里的数据框的内存使用量降低了近 90%,而这一切只需要几个简单的技巧: 将数字列 downcast

    3.7K40

    【Python】基于某些列删除数据框中的重复值

    Python按照某些列去重,可用drop_duplicates函数轻松处理。本文致力用简洁的语言介绍该函数。...注:后文所有的数据操作都是在原始数据集name上进行。 三、按照某一列去重 1 按照某一列去重(参数为默认值) 按照name1对数据框去重。...从结果知,参数keep=False,是把原数据copy一份,在copy数据框中删除全部重复数据,并返回新数据框,不影响原始数据框name。...结果和按照某一列去重(参数为默认值)是一样的。 如果想保留原始数据框直接用默认值即可,如果想直接在原始数据框删重可设置参数inplace=True。...原始数据中只有第二行和最后一行存在重复,默认保留第一条,故删除最后一条得到新数据框。 想要根据更多列数去重,可以在subset中添加列。

    20.5K31

    筛选功能(Pandas读书笔记9)

    这里需要说明pandas数据是从0开始编号的,而我们原始数据是从1开始编号的。 所以使用ix函数的时候,我们输入的是ix[2],选择的是原始数据的第三行 4、显示任意中间行 ?...df['涨跌额']是选出涨跌额这一列 我们看到使用判断后返回的是一个布尔型的数据,是一个TRUE和FALSE的集合体。 那我们如何将这个布尔型的数据实现筛选的功能呢? ?...我们将这个布尔型数据作为一个参数,外面套上原始数据和中括号即可!就实现了筛选功能。 原理就是布尔型数据为真的话,罗列出来!...转义一下就是你的原始数据不能是字符串! 常见错误:原始数字使用文本形式存储 所以在这里和大家介绍一下如何强制文本转数字 ? 上述两种方法均可! 细心的朋友肯定会说:“你框我!不是转化涨跌幅咩!...)将原始数据强制转化为浮点型数据,除以100,让原始数据保持不变;最后使用赋值将更改后的数据重新赋值给涨跌幅那一列。

    5.9K61

    Pandas库常用方法、函数集合

    ,适合将数值进行分类 qcut:和cut作用一样,不过它是将数值等间距分割 crosstab:创建交叉表,用于计算两个或多个因子之间的频率 join:通过索引合并两个dataframe stack: 将数据框的列...“堆叠”为一个层次化的Series unstack: 将层次化的Series转换回数据框形式 append: 将一行或多行数据追加到数据框的末尾 分组 聚合 转换 过滤 groupby:按照指定的列或多个列对数据进行分组...agg:对每个分组应用自定义的聚合函数 transform:对每个分组应用转换函数,返回与原始数据形状相同的结果 rank:计算元素在每个分组中的排名 filter:根据分组的某些属性筛选数据 sum...str.strip: 去除字符串两端的空白字符 str.lower和 str.upper: 将字符串转换为小写或大写 str.replace: 替换字符串中的特定字符 astype: 将一列的数据类型转换为指定类型...sort_values: 对数据框按照指定列进行排序 rename: 对列或行进行重命名 drop: 删除指定的列或行 数据可视化 pandas.DataFrame.plot.area:绘制堆积图 pandas.DataFrame.plot.bar

    31510

    (数据科学学习手札69)详解pandas中的map、apply、applymap、groupby、agg

    #查看各列数据类型、数据框行列数 print(data.dtypes) print() print(data.shape) ?...2.1 map()   类似Python内建的map()方法,pandas中的map()方法将函数、字典索引或是一些需要接受单个输入值的特别的对象与对应的单个列的每一个元素建立联系并串行得到结果,譬如这里我们想要得到...2.3  applymap()   applymap()是与map()方法相对应的专属于DataFrame对象的方法,类似map()方法传入函数、字典等,传入对应的输出结果,不同的是applymap()将传入的函数等作用于整个数据框中每一个位置的元素...三、聚合类方法   有些时候我们需要像SQL里的聚合操作那样将原始数据按照某个或某些离散型的列进行分组再求和、平均数等聚合之后的值,在pandas中分组运算是一件非常优雅的事。...可以注意到虽然我们使用reset_index()将索引列还原回变量,但聚合结果的列名变成红色框中奇怪的样子,而在pandas 0.25.0以及之后的版本中,可以使用pd.NamedAgg()来为聚合后的每一列赋予新的名字

    5.1K60

    不再纠结,一文详解pandas中的map、apply、applymap、groupby、agg...

    #查看各列数据类型、数据框行列数 print(data.dtypes) print() print(data.shape) ?...2.1 map() 类似Python内建的map()方法,pandas中的map()方法将函数、字典索引或是一些需要接受单个输入值的特别的对象与对应的单个列的每一个元素建立联系并串行得到结果。...不同的是applymap()将传入的函数等作用于整个数据框中每一个位置的元素,因此其返回结果的形状与原数据框一致。...三、聚合类方法 有些时候我们需要像SQL里的聚合操作那样将原始数据按照某个或某些离散型的列进行分组再求和、平均数等聚合之后的值,在pandas中分组运算是一件非常优雅的事。...可以注意到虽然我们使用reset_index()将索引列还原回变量,但聚合结果的列名变成红色框中奇怪的样子,而在pandas 0.25.0以及之后的版本中,可以使用pd.NamedAgg()来为聚合后的每一列赋予新的名字

    5K10

    Pandas Sort:你的 Python 数据排序指南

    本教程中的代码是使用 pandas 1.2.0 和Python 3.9.1 执行的。 注意:整个燃油经济性数据集约为 18 MB。将整个数据集读入内存可能需要一两分钟。...如果要按升序对某些列进行排序,并按降序对某些列进行排序,则可以将布尔值列表传递给ascending....通常,这是使用 Pandas 分析数据的最常见和首选方法,因为它会创建一个新的 DataFrame 而不是修改原始数据。这允许您保留从文件中读取数据时的数据状态。....sort_values()就地使用 随着inplace设置为True,您修改原始数据帧,所以排序方法返回None。...您的原始 DataFrame 已被修改,更改将持续存在。避免inplace=True用于分析通常是个好主意,因为对 DataFrame 的更改无法撤消。

    14.3K00

    通宵翻译Pandas官方文档,写了这份Excel万字肝货操作!

    在 Pandas 中,您使用特殊方法从/向 Excel 文件读取和写入。 让我们首先基于上面示例中的数据框,创建一个新的 Excel 文件。 tips.to_excel("....可以通过多种方式过滤数据框,其中最直观的是使用布尔索引。...在 Pandas 中,您需要在从 CSV 读取时或在 DataFrame 中读取一次时,将纯文本显式转换为日期时间对象。 解析后,Excel电子表格以默认格式显示日期,但格式可以更改。...保留某些列 tips[["sex", "total_bill", "tip"]] 结果如下: 删除某些列 tips.drop("sex", axis=1) 结果如下: 重命名列 tips.rename...查找和替换 Excel 查找对话框将您带到匹配的单元格。在 Pandas 中,这个操作一般是通过条件表达式一次对整个列或 DataFrame 完成。

    19.6K20

    不再纠结,一文详解pandas中的map、apply、applymap、groupby、agg...

    ) print(data.shape) 2.1 map() 类似Python内建的map()方法,pandas中的map()方法将函数、字典索引或是一些需要接受单个输入值的特别的对象与对应的单个列的每一个元素建立联系并串行得到结果...不同的是applymap()将传入的函数等作用于整个数据框中每一个位置的元素,因此其返回结果的形状与原数据框一致。...三、聚合类方法 有些时候我们需要像SQL里的聚合操作那样将原始数据按照某个或某些离散型的列进行分组再求和、平均数等聚合之后的值,在pandas中分组运算是一件非常优雅的事。...3.1 利用groupby()进行分组 要进行分组运算第一步当然就是分组,在pandas中对数据框进行分组使用到groupby()方法。...data['count'].agg(['min','max','median']) 聚合数据框 对数据框进行聚合时因为有多列,所以要使用字典的方式传入聚合方案: data.agg({'year'

    5.9K31

    数据处理是万事之基——python对各类数据处理案例分享(献给初学者)

    对数据库或Excel表,如包含了多列不同数据类型的数据(如数字、时间、文本)以及矩阵型或二维表等这些原始数据都需要首先处理才能应用分析。...一个好的数据科学家同时也是一个好的数据处理科学家,有效的数据是万事之基,业务数据分析中数据需要经历如下几个阶段的工序如:清洗原始数据、转换与特殊处理数据、分析和建模、组织分析的结果并以图表的形式展示出来...Pandas模块处理两个重要的数据结构是:DataFrame(数据框)和Series(系列),DataFrame(数据框)就是一个二维表,每列代表一个变量,每行为一次观测,行列交叉的单元格就是对应的值,...数据框有行和列的索引,能帮助我们快速地按索引访问数据框的某几行或某几列,可以对行或列操作。...首先安装pandas包: 案例1:创建一个数据框 说明:v_data变量赋值的是后面的数据,通过df=pd.DataFrame(v_data)构造函数生成数据框并赋值给df,构造函数里有很多参数可以应用

    1.6K10

    python对100G以上的数据进行排序,都有什么好的方法呢

    本教程中的代码是使用 pandas 1.2.0 和Python 3.9.1 执行的。 注意:整个燃油经济性数据集约为 18 MB。将整个数据集读入内存可能需要一两分钟。...如果要按升序对某些列进行排序,并按降序对某些列进行排序,则可以将布尔值列表传递给ascending....通常,这是使用 Pandas 分析数据的最常见和首选方法,因为它会创建一个新的 DataFrame 而不是修改原始数据。这允许您保留从文件中读取数据时的数据状态。....sort_values()就地使用 随着inplace设置为True,您修改原始数据帧,所以排序方法返回None。...您的原始 DataFrame 已被修改,更改将持续存在。避免inplace=True用于分析通常是个好主意,因为对 DataFrame 的更改无法撤消。

    10K30

    如果 .apply() 太慢怎么办?

    如果我们想要将相同的函数应用于Pandas数据帧中整个列的值,我们可以简单地使用 .apply()。Pandas数据帧和Pandas系列(数据帧中的一列)都可以与 .apply() 一起使用。...但是,你是否注意到当我们有一个超大数据集时,.apply() 可能会非常慢? 在本文中,我们将讨论一些加速数据操作的技巧,当你想要将某个函数应用于列时。...将函数应用于单个列 例如,这是我们的示例数据集。...将函数应用于多列 有时我们需要使用数据中的多列作为函数的输入。例如,我们想要创建一列列表来记录“radius_or_3”和“diameter”之间可能的大小。...这比对整个数据帧使用的 .apply() 函数快26倍!! 总结 如果你尝试对Pandas数据帧中的单个列使用 .apply(),请尝试找到更简单的执行方式,例如 df['radius']*2。

    29710

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

    groupby() 通常指的是将数据集拆分为组,应用某些函数(通常是聚合函数),然后将组合并在一起的过程。 一种常见的 SQL 操作是在数据集中获取每个组中记录的计数。...这是因为 DataFrameGroupBy.count() 将函数应用于每列,返回每列中的 NOT NULL 记录数。...groupby() 通常指的是将数据集拆分为组,应用某些函数(通常是聚合),然后将组合并在一起的过程。 一个常见的 SQL 操作是获取数据集中每个组中记录的计数。...这是因为 DataFrameGroupBy.count() 将函数应用于每列,返回每列中 NOT NULL 记录的数量。...例如,假设我们想看到小费金额如何随一周中的日期而变化 - DataFrameGroupBy.agg()允许您向分组的数据框传递一个字典,指示要应用于特定列的函数。

    31710
    领券