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

【精心解读】用pandas处理大数据——节省90%内存消耗的小贴士

pandas已经为我们自动检测了数据类型,其中包括83数值型数据和78对象型数据。对象型数据用于字符包含混合数据类型的。...pandas使用ObjectBlock类来表示包含字符串列的数据块,用FloatBlock类来表示包含浮点型的数据块。...这对我们原始dataframe的影响有限,这是由于它只包含很少的整型。 同理,我们再对浮点型进行相应处理: 我们可以看到所有的浮点型都从float64换为float32,内存用量减少50%。...在这之前,我们先来研究下与数值型相比,pandas如何存储字符串。 选对比数值与字符的储存 object类型用来表示用到了Python字符串对象的,有一部分原因是Numpy缺少对缺失字符的支持。...总结 我们学习了pandas如何存储不同的数据类型,并利用学到的知识将我们的pandas dataframe的内存用量降低了近90%,仅仅只用了一点简单的技巧: 将数值型降级到更高效的类型 将字符串列换为类别类型

8.6K50

何在 Python 中将分类特征转换为数字特征?

在机器学习中,数据有不同的类型,包括数字、分类和文本数据。分类要素是采用一组有限值(颜色、性别国家/地区)的特征。...但是,大多数机器学习算法都需要数字特征作为输入,这意味着我们需要在训练模型之前将分类特征转换为数字特征。 在本文中,我们将探讨在 Python 中将分类特征转换为数字特征的各种技术。...在本文结束时,您将很好地了解如何在机器学习项目中处理分类特征。 标签编码 标签编码是一种用于通过为每个类别分配一个唯一的整数值来将分类数据转换为数值数据的技术。...例如,可以分别为类别为“红色”、“绿色”和“蓝色”的分类特征(“颜色”)分配 0、1 和 2。 标签编码易于实现且内存高效,只需一即可存储编码。...结论 综上所述,在本文中,我们介绍了在 Python 中将分类特征转换为数字特征的不同方法,例如独热编码、标签编码、二进制编码、计数编码和目标编码。方法的选择取决于分类特征的类型和使用的机器学习算法。

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

读完本文,轻松玩转数据处理利器Pandas 1.0

新数据类型:布尔字符串 Pandas 1.0 还实验性地引入了新的数据类型:布尔字符串。 由于这些改变是实验性的,因此数据类型的 API 可能会有轻微的变动,所以用户在使用时务必谨慎操作。...字符串数据类型最大的用处是,你可以从数据帧中只选择字符串列,这样就可以更快地分析数据集中的文本。...df.select_dtypes("string") 在此之前,你只能通过指定名称来选择字符串类型。...不过最值得注意的是,从 DataFrameGroupBy 对象中选择时,输入 key 列表 key 元组的方法已被弃用。现在要用 item 列表,而非键列表。...此前,在遇到分类数据以外的时,fillna() 会引发 ValueError。因此,它现在纳入 assert 来测试不一致,并处理异常。 另外,在将分类数据转换为整数时,也会产生错误的输出。

3.5K10

Mysql数据类型

(3)日期和时间型 日期和时间是一些诸如“2006-07-12”“12:30:43”这样的。MySQL还支持日期/时间的组合,“2006-07-12 12:30:43”。...对于整型,如果数据取值范围较小,人员年龄兄弟姐妹 数,则TINYINT最合适。MEDIUMINT能够表示数百万的并且可用于更多类型的,但存储代价较大。...除非特别需要高精 度范围极大的,一般应使用只用一半存储代价的FLOAT型来表示数据。 在定义整型时,可以指定可选的显示尺寸M。如果这样,M应该是一个1 到255的整数。...在选项M 和D时,如果省略了它们,则使用缺省  2.2字符串列类型 MySQL提供了几种存放字符数据的串类型,其类型如下: 类型名 说明 CHAR 定长字符串 VARCHAR 可变长字符串 TINYBLOB...SET 集合;可赋予多个集合成员 表4:字符串列类型 下表给出了MySQL 定义串的类型,以及每种类型的最大尺寸和存储需求。

2.4K30

Numpy初探

静态类型的语言( C Java) 往往需要每一个变量都明确地声明, 而动态类型的语言(例如 Python) 可以跳过这个特殊规定。...这意味着可以将任何类型的数据指定给任何变量: Python代码 x = 4 x = "four 这里已经将 x 变量的内容由整型转变成了字符串, 而同样的操作在 C语言中将会导致编译错误其他未知的后果...但是这种类型灵活性也指出了一个事实:Python 变量不仅是它们的 , 还包括了关于的类型的一些额外信息。 Python整型不仅仅是一个整型 标准的 Python 实现是用 C 语言编写的。...可以用如下方式创建一个整型列表: L = list(range(10)) L [0, 1, 2, 3, 4, 5, 6, 7, 8, 9] type(L[0]) int 或者创建一个字符串列表: L2...这意味着当你试图将一个浮点插入一个整型数组时, 浮点会被截短成整型。 并且这种截短是自动完成的, 不会给你提示警告, 所以需要特别注意这一点!

2.1K20

python数据分析——数据预处理

例如,对于连续型变量,我们可以通过标准化归一化将其转换到同一量纲下,以便于后续的比较和分析。对于分类变量,我们可以使用独热编码(One-Hot Encoding)将其转换为数值型数据。...dropna()方法用于删除含有缺失的行。 【例】当某行都为NaN时,才删除整行整列。这种情况该如何处理? 关键技术: dropna()方法的how参数。...代码及运行结果如下: 【例】利用numpy库的arange函数创建一维浮点数数组arr1,然后将arr1数组的数据类型转换为整型。 关键技术: astype函数。...七、其他 7.1大小写转换 在数据分析中,有时候需要将字符串中的字符进行大小写转换。在Python中可以使用lower()方法,将字符串中的所有大写字母转换为小写字母。...也可以使用upper()方法,将字符串中的所有小写字母转换为大写字母。

50810

客快物流大数据项目(八十九):ClickHouse的数据类型支持

分类数据类型取值范围整型Int8-128 ~ 127Int16-32768 ~ 32767Int32-2147483648 ~ 2147483647Int64-9223372036854775808 ~...例如,将固定精度的数字转换为整数值,例如货币数量页面加载时间用毫秒为单位表示。...允许存储与日期类型相同范围内的,最小为0000-00-00 00:00:00。时间戳类型精确到(不包括闰秒)。使用客户端服务器时的系统时区,时间戳是从文本转换为二进制并返回。...Enum类型提供toString函数来返回字符;toT函数可以转换为数值类型,T表示一个数值类型,如果T恰好对应Enum底层的数值类型则这个转换是0成本的。...Enum类型可以使用Alter无成本修改对应集合的,可以使用Alter来添加删除Enum的成员(出于安全保障,如果改变之前用过的Enum会报异常),也可以用Alter将Enum8换为Enum16反之

2.8K51

教程 | 简单实用的pandas技巧:如何将内存占用降低90%

pandas 会自动为我们检测数据类型,发现其中有 83 数据是数值,78 是 object。object 是指有字符包含混合数据类型的情况。...数值存储与字符串存储的比较 object 类型表示使用 Python 字符串对象的,部分原因是 NumPy 不支持缺失(missing)字符串类型。...category 类型在底层使用了整型来表示一个中的,而不是使用原始。pandas 使用一个单独的映射词典将这些整型映射到原始。只要当一个包含有限的的集合时,这种方法就很有用。...这一没有任何缺失,但就算有,category 子类型也能处理,只需将其设置为 -1 即可。 最后,让我们看看在将这一换为 category 类型前后的内存用量对比。...因为这一不仅要存储所有的原始字符,还要额外存储它们的整型代码。

3.8K100

读完本文,轻松玩转数据处理利器Pandas 1.0

新数据类型:布尔字符串 Pandas 1.0 还实验性地引入了新的数据类型:布尔字符串。 由于这些改变是实验性的,因此数据类型的 API 可能会有轻微的变动,所以用户在使用时务必谨慎操作。...字符串数据类型最大的用处是,你可以从数据帧中只选择字符串列,这样就可以更快地分析数据集中的文本。...df.select_dtypes("string") 在此之前,你只能通过指定名称来选择字符串类型。...不过最值得注意的是,从 DataFrameGroupBy 对象中选择时,输入 key 列表 key 元组的方法已被弃用。现在要用 item 列表,而非键列表。...此前,在遇到分类数据以外的时,fillna() 会引发 ValueError。因此,它现在纳入 assert 来测试不一致,并处理异常。 另外,在将分类数据转换为整数时,也会产生错误的输出。

2.2K20

plotly-express-1-入门介绍

中的用于提供跨动画帧的联动匹配; category_orders:带有字符串键和字符串列的字典,默认为{},此参数用于强制每的特定排序,dict键是列名,dict是指定的排列顺序的字符串列表...默认情况下,在Python 3.6+中,轴,图例和构面中的分类的顺序取决于在data_frame中首次出现的顺序,而在3.6以下的Python中,默认不保证顺序,该参数即为解决此类问题而设计; labels...默认情况下,图表中使用列名称作为轴标题、图例条目、悬停提示等,此参数可以进行修改,dict的键是列名,dict是修改的新名称; color_discrete_sequence:有效的CSS颜色字符串列表...,除非color在参数color_discrete_map入参的dict键中; color_discrete_map:带字符串键和有效CSS颜色字符的dict,默认为{}。...:字符Plotly.py模板对象,设置图表的背景颜色。

11.4K20

50个超强的Pandas操作 !!

排序数据 df.sort_values(by='ColumnName', ascending=False) 使用方式: 根据指定进行升序降序排序。 示例: 按工资降序排序。...独热编码 pd.get_dummies(df, columns=['CategoricalColumn']) 使用方式: 将分类变量转换为独热编码。 示例: 对“Status”进行独热编码。...字符串处理 df['StringColumn'].str.method() 使用方式: 对字符串列进行各种处理,切片、替换等。 示例: 将“Name”换为大写。...日期时间处理 df['DateTimeColumn'] = pd.to_datetime(df['DateTimeColumn']) 使用方式:将字符串列换为日期时间类型 示例: 将“Date”换为日期时间类型...使用map函数进行替换 df['Status'] = df['Status'].map({'Active': 1, 'Inactive': 0}) 使用方式: 使用map函数根据字典函数替换中的

27610

带你学MySQL系列 | 这份MySQL函数大全,真的超有用!

,实现对字符串左填充指定长度; 9)rpad(str,len,填充字符):用指定的字符,实现对字符串右填充指定长度; 10) replace(str,子串,另一个字符串):将字符串str中的字串,替换为另一个字符串...; case 要判断的字段表达式 when 常量1 then 要显示的1语句1 when 常量2 then 要显示的2语句2 ... else 要显示的n语句n end 操作如下:...② case … when用作区间判断的语法格式; case when 条件1 then 要显示的1语句1 when 条件2 then 要显示的2语句2 ... else 要显示的n语句n...③ max()函数和min()函数:传入整型/小数类型、日期/时间类型意义较大; 结论如下: max()和min()中传入的是"整型/小数类型",计算的是数值的最大和最小。...当然要是一 整行都是null,你也没必要插入这条记录。 总结: 当某个字段中没有null,则"count(字段)=count(*)。"

1.5K40

pandas 处理大数据——如何节省超90%内存

因为python是高级的脚本语言,并没有对如何在内存中存储数据进行精细的控制。 此限制导致字符串以碎片化的形式存储,消耗了更多内存,导致获取慢。...实际上,object的元素是存储在内存中真实的指针。 下图展示了数值类型如何以Numpy数据存储以及如何以python内置类型存储字符串: ? 你可能注意到了,object 使用的是可变大小内存。...python中的字符串字节数相同。...在低层,category 类型使用整型表示中的,而不是原始。pandas 使用单独的字典来映射原始和这些整数。当每一包含有限的数据时,这非常有用。...从上述数据中可以看到,一些的数据只包含很少的唯一,也就是说大多数值都是重复的。 先选择一,看看将其转换为类别类型之后会如何。使用 day_of_week 数据,只包含了7个唯一

5.9K30

Python常用小技巧总结

Pandas小技巧 pandas生成数据 导入数据 导出数据 查看数据 数据选择 数据处理 数据分组 数据合并 数据替换--map映射 数据清洗--replace和正则 数据透视表分析--melt函数 将分类中出现次数较少的归为...合并字典 字符串分割成列表 字符串列表创建字符Python查看图片 itertools模块combinations itertools中reduce 字典.get()方法 解压zip压缩包到指定文件路径...进⾏分组,计算col2的最⼤和col3的最⼤、最⼩的数据透视表 df.groupby(col1).agg(np.mean) # 返回按col1分组的所有的均值,⽀持 df.groupby(... 3 Name: sales, dtype: object 数据透视表分析–melt函数 melt是逆转操作函数,可以将列名转换为数据...string = "the author is beishanla" s = string.split(" ") s ['the', 'author', 'is', 'beishanla'] 字符串列表创建字符

9.4K20

70个NumPy练习:在Python下一举搞定机器学习矩阵运算

答案: 21.打印python numpy数组并保留3位小数? 难度:1 问题:打印显示numpy数组rand_arr,并三位小数。...难度:2 问题:在iris_2d的sepallength(第1)中查找缺失的数量和位置。 答案: 34.如何根据两个多个条件过滤一个numpy数组?...答案: 39.如何查找numpy数组中的唯一的数量? 难度:2 问题:找出iris的species中的唯一及其数量。 答案: 40.如何将数值转换为分类(文本)数组?...难度:3 问题:查找由二维numpy数组中的分类分组的数值的平均值 输入: 输出: 答案: 60.如何将PIL图像转换为numpy数组?...输入: 答案: 63.如何在一维数组中找到所有局部最大峰值)? 难度:4 问题:在一维numpy数组a中查找所有峰值。峰值是两侧较小包围的点。

20.6K42

Java岗大厂面试百日冲刺 - 日积月累,每日三题【Day14】—— 数据库3

也就是说,它们包含字节字符串而不是字符字符串。这说明它们没有字符集,并且排序和比较基于字节的数值。 BLOB 是一个二进制大对象,可以容纳可变数量的数据。...但正因为其长度固定,所以会占据多余的空间,也是一种空间换时间的策略; 2、存储方式 VARCHAR   VARCHAR需要使用12个额外字节记录字符串的长度:如果的最大长度小于等于255字节,则只使用...CHAR   CHAR适合存储很短长度近似的字符串。例如,CHAR非常适合存储密码的MD5,因为这是一个定长的。...从MySQL 4.1开始,每个字符串列可以定义自己的字符集和排序规则。这些东西会很大程度上影响性能。...原来字符串涉及到 +、=、-、/ 等等运算符时都会进行隐式转型,也就是转成double,那么字符double是怎么的呢?

1.5K10
领券