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

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

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

3.7K40

Pandas数据应用:推荐系统

而Pandas作为Python中强大的数据分析库,在处理推荐系统的数据预处理、特征工程等环节中发挥着重要作用。二、常见问题及解决方案(一)数据缺失值处理问题描述在构建推荐系统时,数据集往往存在缺失值。...示例代码:import pandas as pd# 假设df是一个包含用户评分数据的数据框# 对数值型列使用均值填充df['rating'] = df['rating'].fillna(df['rating...例如,将本应为整数类型的评分数据误读为字符串类型。解决方法使用astype()函数可以方便地转换数据类型。同时,在读取数据时,可以使用dtype参数指定各列的数据类型。...示例代码:# 将'reating'列转换为整数类型df['rating'] = df['rating'].astype(int)三、常见报错及避免或解决方法(一)KeyError报错原因当尝试访问不存在的列名时会引发...例如,在数据框中查找一个拼写错误或者不存在的列。解决方法检查列名是否正确,可以通过columns属性查看数据框的所有列名。也可以使用get()方法来安全地获取列,如果列不存在则返回默认值。

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

    数据处理利器pandas入门

    每列可以是不同类型的数据,比如数值,字符串,逻辑值等。...转换的时候要转换成 '0d'的形式,防止数字为0-9时为单字符,然后使用 pd.to_datetime 函数转换,需要指定 format 参数,否则转换会出错。...: .apply 上面在创建时间索引时便利用了.apply 方法,对date 和 hour列分别进行了数据类型的转换,然后将两个字符串进行了连接,转换为时间。...即获取每个站点时,可以直接获取当前站点的所有要素数据,而且时间索引也按照单个时刻排列,索引不会出现重复值,而之前的存储形式索引会出现重复。索引重复会使得某些操作出错。...上述操作返回的列仍然是 MultiIndex,因为此时只有一个站点了,我们可以使用 .xs 方法将列从MultiIndex转换为Index。

    3.7K30

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

    df.sort_values("col1", inplace=True) 数据输入和输出 1. 利用值构造一个数据框DataFrame 在Excel电子表格中,值可以直接输入到单元格中。...在 Pandas 中,您需要在从 CSV 读取时或在 DataFrame 中读取一次时,将纯文本显式转换为日期时间对象。 解析后,Excel电子表格以默认格式显示日期,但格式可以更改。...在 Pandas 中,您通常希望在使用日期进行计算时将日期保留为日期时间对象。输出部分日期(例如年份)是通过电子表格中的日期函数和 Pandas 中的日期时间属性完成的。...按值排序 Excel电子表格中的排序,是通过排序对话框完成的。 pandas 有一个 DataFrame.sort_values() 方法,它需要一个列列表来排序。...查找和替换 Excel 查找对话框将您带到匹配的单元格。在 Pandas 中,这个操作一般是通过条件表达式一次对整个列或 DataFrame 完成。

    19.6K20

    Pandas库常用方法、函数集合

    ,适合将数值进行分类 qcut:和cut作用一样,不过它是将数值等间距分割 crosstab:创建交叉表,用于计算两个或多个因子之间的频率 join:通过索引合并两个dataframe stack: 将数据框的列...“堆叠”为一个层次化的Series unstack: 将层次化的Series转换回数据框形式 append: 将一行或多行数据追加到数据框的末尾 分组 聚合 转换 过滤 groupby:按照指定的列或多个列对数据进行分组...: 标记重复的行 drop_duplicates: 删除重复的行 str.strip: 去除字符串两端的空白字符 str.lower和 str.upper: 将字符串转换为小写或大写 str.replace...: 替换字符串中的特定字符 astype: 将一列的数据类型转换为指定类型 sort_values: 对数据框按照指定列进行排序 rename: 对列或行进行重命名 drop: 删除指定的列或行 数据可视化...pandas.plotting.bootstrap_plot:用于评估统计数据的不确定性,例如均值,中位数,中间范围等 pandas.plotting.lag_plot:绘制时滞图,用于检测时间序列数据中的模式

    31510

    Pandas速查卡-Python数据科学

    刚开始学习pandas时要记住所有常用的函数和方法显然是有困难的,所以在Dataquest(https://www.dataquest.io/)我们主张查找pandas参考资料(http://pandas.pydata.org...格式的字符串, URL或文件. pd.read_html(url) 解析html URL,字符串或文件,并将表提取到数据框列表 pd.read_clipboard() 获取剪贴板的内容并将其传递给read_table...(x) 用x替换所有空值 s.fillna(s.mean()) 将所有空值替换为均值(均值可以用统计部分中的几乎任何函数替换) s.astype(float) 将数组的数据类型转换为float s.replace...(1,'one') 将所有等于1的值替换为'one' s.replace([1,3],['one','three']) 将所有1替换为'one',将3替换为'three' df.rename(columns...df.describe() 数值列的汇总统计信息 df.mean() 返回所有列的平均值 df.corr() 查找数据框中的列之间的相关性 df.count() 计算每个数据框的列中的非空值的数量 df.max

    9.2K80

    多快好省地使用pandas分析大型数据集

    特别是很多学生党在使用自己性能一般的笔记本尝试处理大型数据集时,往往会被捉襟见肘的算力所劝退。但其实只要掌握一定的pandas使用技巧,配置一般的机器也有能力hold住大型数据集的分析。...下面我们将循序渐进地探索在内存开销和计算时间成本之间寻求平衡,首先我们不做任何优化,直接使用pandas的read_csv()来读取train.csv文件: import pandas as pd raw...」 因为pandas默认情况下读取数据集时各个字段确定数据类型时不会替你优化内存开销,比如我们下面利用参数nrows先读入数据集的前1000行试探着看看每个字段都是什么类型: raw = pd.read_csv...('train.csv', nrows=1000) raw.info() 图3 怪不得我们的数据集读进来会那么的大,原来所有的整数列都转换为了int64来存储,事实上我们原数据集中各个整数字段的取值范围根本不需要这么高的精度来存储...图10 推荐使用conda install dask来安装dask相关组件,安装完成后,我们仅仅需要需要将import pandas as pd替换为import dask.dataframe as dd

    1.4K40

    Pandas高级数据处理:大数据集处理

    然而,当我们面对大规模数据集时,使用 Pandas 进行数据处理可能会遇到性能瓶颈、内存不足等问题。...)# 将所有分块合并df = pd.concat(chunks)选择性读取列:如果只需要部分列的数据,可以通过 usecols 参数指定需要读取的列,从而减少内存占用。...数据类型优化Pandas 默认会根据数据内容推断数据类型,但有时这会导致不必要的内存浪费。例如,默认情况下字符串会被存储为 object 类型,而整数和浮点数则可能被存储为更大的数值类型。...例如,在进行数据筛选时,可以使用 inplace=True 参数直接修改原数据框,而不是创建新的副本。# 直接修改原数据框df.dropna(inplace=True)二、常见报错及解决方法1....DtypeWarning当读取 CSV 文件时,如果某些列包含混合类型的数据(例如既有数字又有字符串),Pandas 可能会发出 DtypeWarning。

    8710

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

    2.1 map()   类似Python内建的map()方法,pandas中的map()方法将函数、字典索引或是一些需要接受单个输入值的特别的对象与对应的单个列的每一个元素建立联系并串行得到结果,譬如这里我们想要得到...三、聚合类方法   有些时候我们需要像SQL里的聚合操作那样将原始数据按照某个或某些离散型的列进行分组再求和、平均数等聚合之后的值,在pandas中分组运算是一件非常优雅的事。...当变量为1个时传入名称字符串即可,当为多个时传入这些变量名称列表,DataFrame对象通过groupby()之后返回一个生成器,需要将其列表化才能得到需要的分组后的子集,如下面的示例: #按照年份和性别对婴儿姓名数据进行分组...,键为变量名,值为对应的聚合函数字符串,譬如{'v1':['sum','mean'], 'v2':['median','max','min]}就代表对数据框中的v1列进行求和、均值操作,对v2列进行中位数...可以注意到虽然我们使用reset_index()将索引列还原回变量,但聚合结果的列名变成红色框中奇怪的样子,而在pandas 0.25.0以及之后的版本中,可以使用pd.NamedAgg()来为聚合后的每一列赋予新的名字

    5.1K60

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

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

    5K10

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

    ) print(data.shape) 2.1 map() 类似Python内建的map()方法,pandas中的map()方法将函数、字典索引或是一些需要接受单个输入值的特别的对象与对应的单个列的每一个元素建立联系并串行得到结果...不同的是applymap()将传入的函数等作用于整个数据框中每一个位置的元素,因此其返回结果的形状与原数据框一致。...三、聚合类方法 有些时候我们需要像SQL里的聚合操作那样将原始数据按照某个或某些离散型的列进行分组再求和、平均数等聚合之后的值,在pandas中分组运算是一件非常优雅的事。...其主要使用到的参数为by,这个参数用于传入分组依据的变量名称,当变量为1个时传入名称字符串即可。...其传入的参数为字典,键为变量名,值为对应的聚合函数字符串,譬如{'v1':['sum','mean'], 'v2':['median','max','min]}就代表对数据框中的v1列进行求和、均值操作

    5.9K31

    在数据框架中创建计算列

    首先,我们需要知道该列中存储的数据类型,这可以通过检查列中的第一项来找到答案。 图4 很明显,该列包含的是字符串数据。 将该列转换为datetime对象,这是Python中日期和时间的标准数据类型。...pandas实际上提供了一种将字符串值转换为datetime数据类型的便捷方法。...然后,将这些数字除以365,我们得到一列年数。 处理数据框架中NAN或Null值 当单元格为空时,pandas将自动为其指定NAN值。...我们需要首先考虑这些值,因为在大多数情况下,pandas不知道如何处理它们。我们可以使用.fillna()方法将NAN值替换为我们想要的任何值。...出于演示目的,这里只是将NAN值替换为字符串值“0”。 图6 数据类型转换 & 数据框架上的简单算术运算 最后,我们将使用“成年年份”列来计算公司的年龄。

    3.8K20

    (数据科学学习手札73)盘点pandas 1.0.0中的新特性

    2.1 新增StringDtype数据类型   一直以来,pandas中的字符串类型都是用object来存储的,这次更新带来的新的更有针对性的StringDtye主要是为了解决如下问题: object...图2),其包含两列V1和V2,且V1中的元素并不是纯粹的字符串,混杂了数字,而V2则为纯粹的字符串列: ?...图4   可以看到,运行这段代码后抛出了对应的错误,因为StringDtype只允许字符串出现,包含数字1的V1便被拒绝转换为string型,而对于V2: # 对V2进行强制类型 StringDtype_test...()去除数据框中的重复值时,经常会发现处理后的结果index随着排序或行的删除而被打乱,在index无意义时我们需要使用reset_index()方法对结果的index进行重置,而在新版本的pandas...中,为sort_values()、sort_index()以及drop_duplicates()引入了新参数ignore_index(),这是一个bool型变量,默认值为False,当被设置为True时

    78331

    Python—关于Pandas的缺失值问题(国内唯一)

    稍后我们将使用它来重命名一些缺失的值。 导入库后,我们将csv文件读取到Pandas数据框中。 使用该方法,我们可以轻松看到前几行。...ST_NUM:float或int…某种数字类型 ST_NAME:细绳 OWN_OCCUPIED:字符串…Y(“是”)或N(“否”) NUM_BEDROOMS:float或int,数字类型 标准缺失值 “...这些是Pandas可以检测到的缺失值。 回到我们的原始数据集,让我们看一下“ ST_NUM”列。 ? 第三列中有一个空单元格。在第七行中,有一个“ NA”值。 显然,这些都是缺失值。...然后,当我们导入数据时,Pandas会立即识别出它们。这是我们将如何执行此操作的示例。...遍历OWN_OCCUPIED列 尝试将条目转换为整数 如果条目可以更改为整数,请输入缺失值 如果数字不能是整数,我们知道它是一个字符串,所以继续 看一下代码,然后我将对其进行详细介绍 # 检测数据 cnt

    3.2K40

    Pandas数据类型转换:astype与to_numeric

    二、astype方法astype 是Pandas中最常用的类型转换方法之一。它可以将整个DataFrame或Series中的数据转换为指定的类型。...(一)常见用法单一列转换如果我们有一个包含混合类型数据的DataFrame,并且想要将某一列转换为整数类型,可以这样做: import pandas as pd df = pd.DataFrame...astype来实现: df = df.astype({'A': int, 'B': float})(二)常见问题及解决办法无效字面量当尝试将非数字字符串转换为数值类型时,可能会遇到“invalid...这是因为某些值无法被解释为预期的数字格式。为了避免这种情况,可以在转换前清理数据,或者使用errors='ignore'参数跳过无法转换的值。精度丢失在从浮点数转换为整数时,可能会导致精度丢失。...(一)优势自动识别缺失值to_numeric 可以自动将无法解析为数字的值替换为NaN,这使得它非常适合处理含有脏数据的数据集。优化内存占用使用downcast参数可以帮助减少不必要的内存消耗。

    24810
    领券