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

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

每个类型在 pandas.core.internals 模块中都有一个专门的类, Pandas 使用 ObjectBlock class 来代表包含字符串列的块,FloatBlock class 表示包含浮点数据...对于表示数值(如整数和浮点数)的块,Pandas 这些组合在一起,并存储为 NumPy ndarry 数组。...可以看到,我们所有的浮点数列都从 float64 转换成 float32,使得内存的使用量减少了 50%。...当我们换为 category dtype 时,Pandas 使用了最省空间的 int 子类型,来表示一中所有的唯一。 想要知道我们可以怎样使用这种类型来减少内存使用量。...总结和后续步骤 我们已经了解到 Pandas 是如何存储不同类型的数据的,然后我们使用这些知识 Pandas 里的数据框的内存使用量降低了近 90%,而这一切只需要几个简单的技巧: 数字 downcast

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

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

对于包含数值数据(比如整型和浮点)的数据块,pandas会合并这些,并把它们存储为一个Numpy数组(ndarray)。Numpy数组是在C数组的基础上创建的,其在内存中是连续存储的。...由于pandas使用相同数量的字节来表示同一类的每一个,并且numpy数组存储了这些的数量,所以pandas能够快速准确地返回数值所消耗的字节量。...这对我们原始dataframe的影响有限,这是由于它只包含很少的整型。 同理,我们再对浮点进行相应处理: 我们可以看到所有的浮点都从float64转换为float32,内存用量减少50%。...下面的代码中,我们用Series.cat.codes属性来返回category类型用以表示每个的整型数字。 可以看到,每一个都被赋值为一个整数,而且这一在底层是int8类。...总结 我们学习了pandas如何存储不同的数据类型,并利用学到的知识将我们的pandas dataframe的内存用量降低了近90%,仅仅只用了一点简单的技巧: 数值降级到更高效的类型 字符串列转换为类别类型

8.6K50

pandas 8 个常用的 option 设置

改变pandas中显示的字符数有一些限制,默认为50字符。所以,有的字符过长就会显示省略号。如果想全部显示,可以设置display.max_colwidth,比如设置成500。...设置float的精度 对于float浮点数据,pandas默认情况下只显示小数点后6位。我们可以通过预先设置display.precision让其只显示2位,避免后面重复操作。...这个设置不影响底层数据,它只影响浮动的显示。 5. 数字格式化显示 pandas中有一个选项display.float_formatoption可以用来格式化任何浮点。...这个仅适用于浮点,对于其他数据类型,必须将它们转换为浮点数才可以。 用逗号格式化大数字 例如 1200000 这样的大数字看起来很不方便,所以我们用逗号进行分隔。...pd.set_option ('display.max_colwidth',xxx) #最大字符数 pd.set_option( 'display.precision',2) # 浮点精度 pd.set_option

4K10

Pandas 数据类型概述与转换实战

看起来很简单,让我们尝试对 2016 做同样的事情,并将其转换为浮点数: 同样的,转换 Jan Units 转换异常了~ 上面的情况中,数据中包含了无法转换为数字。...数值转换为字符串对象 如果数据有数字字符或者不是同质的,那么 astype() 将不是类型转换的好选择。...python 的字符串函数去除“$”和“,”,然后换为浮点数 也许有人会建议使用 Decimal 类型的货币。...np.where() 方法对许多类型的问题都很有用,所以我们选择在这里使用 基本思想是使用 np.where() 函数所有“Y”换为 True 并将其他所有换为 False df["Active...这两者都可以简单地使用内置的 pandas 函数进行转换,例如 pd.to_numeric() 和 pd.to_datetime() Jan Units 转换存在问题的原因是中包含数字

2.4K20

pandas 变量类型转换的 6 种方法

,s是一数据,具有多种数据类型,现在想把它转换为数值类型。...('2018-01-05')]) # 默认错位格式为raise,遇到数字字符串类型报错 pd.to_numeric(s, errors='raise') # 错位格式为ignore,只对数字字符串转换..., 其他类型一律忽视不转换, 包含时间类型 pd.to_numeric(s, errors='ignore') # 时间字符串和bool类型强制转换为数字, 其他均转换为NaN pd.to_numeric..., downcast='signed') # 转换为整型 4、转换字符类型 数字转字符类型非常简单,可以简单的使用str直接转换。...如果convert_integer也为True,则如果可以浮点数忠实地转换为整数,则将优先考虑整数dtype 下面看一组示例。 通过结果可以看到,变量都是是创建时默认的类型。

4.3K20

数据科学 IPython 笔记本 7.7 处理缺失数据

在标记方法中,标记可能是某些特定于数据的惯例,例如例如使用-9999或某些少见的位组合来表示缺失整数值,或者它可能是更全局的惯例,例如使用NaN(数字)表示缺失浮点,这是一个特殊,它是 IEEE...Pandas 中的缺失数据 Pandas 处理缺失的方式受到其对 NumPy 包的依赖性的限制,NumPy 包没有浮点数据类型的 NA 的内置概念。...NaN:缺失的数值数据 另一个缺失的数据表示,NaN(“数字”的首字母缩写)是不同的;它是所有系统都识别的特殊浮点使用标准 IEEE 浮点表示: vals2 = np.array([1, np.nan...dtype: int64 ''' x[0] = None x ''' 0 NaN 1 1.0 dtype: float64 ''' 请注意,除了整数数组转换为浮点数外,Pandas...还会自动None转换为NaN

4K20

资源 | 23种Pandas核心操作,你需要过一遍吗?

它基于 Cython,因此读取与处理数据非常快,并且还能轻松处理浮点数据中的缺失数据(表示为 NaN)以及浮点数据。...(9)替换缺失数据 df.replace(to_replace=None, value=None) 使用 value 代替 DataFrame 中的 to_replace ,其中 value 和 to_replace...(12)目标类型转换为浮点 pd.to_numeric(df["feature_name"], errors='coerce') 目标类型转化为数值从而进一步执行计算,在这个案例中为字符串。...(13) DataFrame 转换为 NumPy 数组 df.as_matrix() (14)取 DataFrame 的前面「n」行 df.head(n) (15)通过特征名取数据 df.loc[feature_name...以下代码将过滤名为「size」的行,并仅显示等于 5 的行: df[df["size"] == 5] (23)选定特定的 以下代码选定「size」、第一行的: df.loc([0], ['size

2.9K20

资源 | 23种Pandas核心操作,你需要过一遍吗?

它基于 Cython,因此读取与处理数据非常快,并且还能轻松处理浮点数据中的缺失数据(表示为 NaN)以及浮点数据。...(9)替换缺失数据 df.replace(to_replace=None, value=None) 使用 value 代替 DataFrame 中的 to_replace ,其中 value 和 to_replace...(12)目标类型转换为浮点 pd.to_numeric(df["feature_name"], errors='coerce') 目标类型转化为数值从而进一步执行计算,在这个案例中为字符串。...(13) DataFrame 转换为 NumPy 数组 df.as_matrix() (14)取 DataFrame 的前面「n」行 df.head(n) (15)通过特征名取数据 df.loc[feature_name...以下代码将过滤名为「size」的行,并仅显示等于 5 的行: df[df["size"] == 5] (23)选定特定的 以下代码选定「size」、第一行的: df.loc([0], ['size

1.4K40

资源 | 23种Pandas核心操作,你需要过一遍吗?

它基于 Cython,因此读取与处理数据非常快,并且还能轻松处理浮点数据中的缺失数据(表示为 NaN)以及浮点数据。...(9)替换缺失数据 df.replace(to_replace=None, value=None) 使用 value 代替 DataFrame 中的 to_replace ,其中 value 和 to_replace...(12)目标类型转换为浮点 pd.to_numeric(df["feature_name"], errors='coerce') 目标类型转化为数值从而进一步执行计算,在这个案例中为字符串。...(13) DataFrame 转换为 NumPy 数组 df.as_matrix() (14)取 DataFrame 的前面「n」行 df.head(n) (15)通过特征名取数据 df.loc[feature_name...以下代码将过滤名为「size」的行,并仅显示等于 5 的行: df[df["size"] == 5] (23)选定特定的 以下代码选定「size」、第一行的: df.loc([0], ['size

1.8K20

解决ValueError: cannot convert float NaN to integer

换为浮点数如果我们确认了数据中并不包含NaN,那么可以考虑浮点数转换为整数。我们可以使用​​math​​模块或者​​numpy​​库中的相应函数来完成转换。...首先,我们需要检查数据中是否存在NaN,并根据实际情况进行处理。如果数据中并不包含NaN,我们可以使用相应的转换方法浮点数转换为整数。希望这篇文章能帮助你解决类似的问题。...接着,使用​​fillna​​函数NaN换为0,再使用​​astype​​方法浮点数转换为整数类型。最后,打印输出了处理后的数据集。...处理NaN是数据清洗与准备的重要环节之一,常见的处理方法包括填充(用合适的替换NaN)、删除(从数据集中删除包含NaN的行或)等。整数整数是数学中的一种基本数据类型,用于表示不带小数部分的数字。...可以使用整数执行各种数值计算和逻辑操作,并与其他数据类型(如浮点数、字符串)进行交互。 对于某些操作,比如一个浮点数转换为整数类型,需要注意浮点数的有效性以及特殊情况,如存在NaN的情况。

1.2K00

在 Python 中,通过列表字典创建 DataFrame 时,若字典的 key 的顺序不一样以及部分字典缺失某些键,pandas 将如何处理?

这是一个很好的问题,因为它涉及到 pandas 在处理规范化输入数据时的灵活性和稳健性。...DataFrame 是 pandas 库中的一种二维标签数据结构,类似于 Excel 表格或 SQL 表,其中可以存储不同类型的。这种数据结构非常适合于处理真实世界中常见的异质数据。...df = pd.DataFrame(data, dtype=np.float64):这行代码使用 pandas 的 DataFrame 函数 data 列表转换为 DataFrame。...总的来说,这段代码首先导入了所需的库,然后创建了一个包含多个字典的列表,最后这个列表转换为 DataFrame,并输出查看。...输出结果展示如下: 我们从上面的示例就容易观察到: 生成的 DataFrame 中的顺序遵循了首次出现键的顺序。

7500

洞悉客户心声:Pandas标签帮你透视客户,标签化营销如虎添翼

中文换为数字岂非增加了复杂性?然而事实并非如此。采用数字存储具有以下几点好处:存储效率:数字通常比文本占用更少的存储空间。使用数字代码可以减少数据库的存储需求,提高存储效率。...数据一致性:使用数字代码可以避免由于文本标签的不同写法(如大小写、空格、特殊字符等)引起的数据不一致问题。安全性:在某些情况下,敏感信息(如客户信息)以数字代码的形式存储可以提高数据的安全性。..., 2] 目的也是为了找出null的数据 null_ind.extend(null_ind1) this_col = df[key].astype('float') # 数据框类型转换为浮点...df中last_trans_mon_dur这一,同时转换为数据类型转换为 int64 return df# 创建测试数据data = { 'name': ['张三', '李四', '王五...对象 字典 print(cat_dict)运行结果{'curr_hold_amt_mom': -2, 'curr_hold_amt_yoy': -2}五、pandas横表转竖表最后这段代码的主要作用是数据从横表转换为竖表

16010

Pandas数据处理——渐进式学习1、Pandas入门基础

查看列名 head查看 DataFrame 头部数据 tail查看 DataFrame 尾部数据 转Numpy数组 数据统计摘要describe函数 横纵坐标转换位置 反向排列数据 获取数据 使用[...,期望能节约大家的事件从而更好的精力放到真正去实现某种功能上去。...---- Pandas介绍 Pandas 是 Python 的核心数据分析支持库,提供了快速、灵活、明确的数据结构,旨在简单、直观地处理关系、标记数据。...Pandas 适用于处理以下类型的数据: 与 SQL 或 Excel 表类似的,含异构的表格数据; 有序和无序(固定频率)的时间序列数据; 带行列标签的矩阵数据,包括同构或异构型数据; 任意其它形式的观测...Pandas 就像一把万能瑞士军刀,下面仅列出了它的部分优势 : 处理浮点浮点数据里的缺失数据,表示为 NaN; 大小可变:插入或删除 DataFrame 等多维对象的; 自动、显式数据对齐:显式地将对象与一组标签对齐

2.2K50

Stata与Python等效操作与调用

处理过程中,针对数值和字符不同的数据类型,有不同的处理方法。 数值变量主要是简单的计算,生成新的变量。如生成最大、最小、均值,或者是求和、平方和取对数等。...long.unstack('time') 进行 reshape ,它使用索引 'time' 并创建一个新的它具有的每个唯一。请注意,这些现在具有多个级别,就像以前的索引一样。...econtools.binscatter 1.12 网络爬虫(待更新) 1.13 其他方面 1.13.1 缺失 在 Python 中,缺失由 NumPy “数字” 对象 np.nan 表示。...要在 DataFrame 中查找缺失使用以下任何一种: df[].isnull() 返回一个每行为 True 和 False 的向量 df[]。...另一个重要的区别是 np.nan 是浮点数据类型,因此 DataFrame 的任何包含缺失数字的将是浮点的。如果一整型数据改变了,即使只有一行 np.nan ,整列将被转换为浮点

9.8K51

numpy中的文件读写

默认采用空白作为分隔符,文件中的内容读取进来,并生成矩阵,要求每行的内容数目必须一致,也就是说不能有缺失。由于numpy矩阵中都是同一类的元素,所以函数会自动文件中的内容转换为同一类。...如果文件内容全为纯数字或者字符,上述行为当然没什么问题,但是当文件内容是混合时,有可能出现无法自动转换的情况,最常见的第一行为字符串表头,其他行为数字,此时程序会尝试表头的字符串转换为浮点,由于无法自动转换...]]) # 选择对应的,下标从0开始 >>> np.loadtxt('a.txt', usecols = (1, )) array([ 2., 4....重点来看下其缺失处理功能,对于文件中无法转换为同一类的内容,自动用np.nan来表示,同时也可以自定义缺失,并指定缺失的填充方式,示意如下 # 自动转换为nan >>> np.genfromtxt...以上就是numpy文件读写的基本用法,numpy作为科学计算的底层核心包,有很多的包对其进行了封装,提供了更易于使用的借口,最出名的比如pandas,通过pandas来进行文件读写,会更加简便,在后续的文章中再进行详细介绍

2.1K10

Python之Pandas中Series、DataFrame实践

2. pandas的数据结构DataFrame是一个表格的数据结构,它含有一组有序的,每可以是不同的类型(数值、字符串、布尔的)。...4. pandas的主要Index对象 Index 最泛化的Index对象,轴标签表示为一个由Python对象组成的NumPy数组 Int64Index 针对整数的特殊Index MultiIndex...(如果希望匹配行且在列上广播,则必须使用算数运算方法) 6....排序和排名 要对行或索引进行排序(按字典顺序),可使用sort_index方法,它将返回一个已排序的新对象;对于DataFrame,则可以根据任意一个轴上的索引进行排序。 8....处理缺失数据(Missing data) 9.1 pandas使用浮点NaN(Not a Number)表示浮点浮点数组中的缺失数据。

3.9K50

数据处理利器pandas入门

这里可以 Series和 DataFrame分别看作一维数组和二维数组。 Series Series是一维标签数组,其可以存储任何数据类型,包括整数,浮点数,字符串等等。...如果仅给定列表,不指定index参数,默认索引为从0开始的数字。注意:索引标签为字符串和整数的混合类型。记住不要使用浮点数作为索引,并且尽量避免使用混合类型索引。...:由于数据中包含了时间信息(date和hour),为了方便操作,我们可以使用以下命令时间设置为索引。...: .apply 上面在创建时间索引时便利用了.apply 方法,对date 和 hour分别进行了数据类型的转换,然后两个字符串进行了连接,转换为时间。...上述操作返回的仍然是 MultiIndex,因为此时只有一个站点了,我们可以使用 .xs 方法从MultiIndex转换为Index。

3.6K30
领券