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

    进步神速,Pandas 2.1中的新改进和新功能

    第一个基于PyArrow的字符串dtype在pandas 1.3中可用。它有潜力将内存使用量减少约70%并提高性能。...Pandas团队决定引入一个新的配置选项,将所有字符串列存储在PyArrow数组中。不再需要担心转换字符串列,它会自动工作。...它的行为与NumPy对象列完全相同。 改进的PyArrow支持 Pandas团队在pandas 2.0中引入了基于PyArrow的DataFrame。...弃用setitem类操作中的静默类型转换 一直以来,如果将不兼容的值设置到pandas的列中,pandas会默默地更改该列的数据类型。...结论 本文介绍了几个改进,这些改进将帮助用户编写更高效的代码。这其中包括性能改进,更容易选择PyArrow支持的字符串列和写入时复制(Copy-on-Write)的进一步改进。

    1.8K10

    Pandas 2.1发布了

    更好的PyArrow支持 PyArrow是在Panda 2.0中新加入的后端,对于大数据来说提供了优于NumPy的性能。Pandas 2.1增强了对PyArrow的支持。...官方在这次更新中使用最大的高亮字体宣布 PyArrow 将是 Pandas 3.0的基础依赖,这说明Panda 是认定了PyArrow了。...而现在可以设定na_action= " ignore "参数,将忽略所有类型数组中的nan值。...字符串的默认类型 默认情况下,所有字符串都存储在具有NumPy对象dtype的列中,如果你安装了PyArrow,则会将所有字符串推断为PyArrow支持的字符串,这个选项需要使用这个参数设置: pd.options.future.infer_string...这意味着代码将更加统一。Pandas将识别何时复制对象,并且只在必要时复制对象。在Pandas 2.1中,花了很多精力使许多地方的Copy-On-Write保持一致。

    44730

    独家 | Pandas 2.0 数据科学家的游戏改变者(附链接)

    其他值得指出的方面: 如果没有 pyarrow 后端,每个列/特征都存储为自己的唯一数据类型:数字特征存储为 int64 或 float64,而字符串值存储为对象; 使用 pyarrow,所有功能都使用...当将数据作为浮点数传递到生成模型中时,我们可能会得到小数的输出值,例如 2.5——除非你是一个有 2 个孩子、一个新生儿和奇怪的幽默感的数学家,否则有 2.5 个孩子是不行的。...这意味着在启用写入时复制时,某些方法将返回视图而不是副本,这通过最大限度地减少不必要的数据重复来提高内存效率。 这也意味着在使用链式分配时需要格外小心。...翻译组招募信息 工作内容:需要一颗细致的心,将选取好的外文文章翻译成流畅的中文。如果你是数据科学/统计学/计算机类的留学生,或在海外从事相关工作,或对自己外语水平有信心的朋友欢迎加入翻译小组。...未经许可的转载以及改编者,我们将依法追究其法律责任。

    1.1K30

    Pandas 2.1发布了

    更好的PyArrow支持 PyArrow是在Panda 2.0中新加入的后端,对于大数据来说提供了优于NumPy的性能。Pandas 2.1增强了对PyArrow的支持。...官方在这次更新中使用最大的高亮字体宣布 PyArrow 将是 Pandas 3.0的基础依赖,这说明Panda 是认定了PyArrow了。...而现在可以设定na_action= " ignore "参数,将忽略所有类型数组中的nan值。...字符串的默认类型 默认情况下,所有字符串都存储在具有NumPy对象dtype的列中,如果你安装了PyArrow,则会将所有字符串推断为PyArrow支持的字符串,这个选项需要使用这个参数设置: pd.options.future.infer_string...这意味着代码将更加统一。Pandas将识别何时复制对象,并且只在必要时复制对象。在Pandas 2.1中,花了很多精力使许多地方的Copy-On-Write保持一致。

    35220

    geopandas&geoplot近期重要更新

    parquet两种崭新的数据格式,他们都是Apache Arrow项目下的重要数据格式,提供高性能文件存储服务,使得我们可以既可以快速读写文件,又可以显著减少文件大小,做到了“多快好省”: 图1 在将geopandas...更新到0.8.0版本后,便新增了read_feather()、to_feather()、read_parquet()以及to_parquet()这四个API,但要「注意」,这些新功能依赖于pyarrow...,首先请确保pyarrow被正确安装,推荐使用conda install -c conda-forge pyarrow来安装。...安装完成后,我们就来一睹这些新功能的效率如何,首先我们创建一个足够大的虚拟表(200万行11列),并为其新增点要素矢量列: import numpy as np from shapely.geometry...import Point import pandas as pd from tqdm.notebook import tqdm # 创建虚拟表,其中字段名为了导出shapefile不报错加上非数字的前缀

    1.1K30

    (数据科学学习手札89)geopandas&geoplot近期重要更新

    图1   在将geopandas更新到0.8.0版本后,便新增了read_feather()、to_feather()、read_parquet()以及to_parquet()这四个API,但要注意,这些新功能依赖于...pyarrow,首先请确保pyarrow被正确安装,推荐使用conda install -c conda-forge pyarrow来安装。   ...安装完成后,我们就来一睹这些新功能的效率如何,首先我们创建一个足够大的虚拟表(200万行11列),并为其新增点要素矢量列: import numpy as np from shapely.geometry...import Point import pandas as pd from tqdm.notebook import tqdm # 创建虚拟表,其中字段名为了导出shapefile不报错加上非数字的前缀...进度条 base['geometry'] = base.progress_apply(lambda row: Point(row['_10'], row['_11']), axis=1) # 添加矢量列

    1.1K20

    Pandas 2.2 中文官方教程和指南(十·二)

    这些是以表中总行数为单位的。 注意 如果查询表达式具有未知变量引用,则 select 将引发 ValueError。通常,这意味着您正在尝试选择一个不是数据列的列。...append_to_multiple方法根据d,一个将表名映射到你想要在该表中的‘列’列表的字典,将给定的单个 DataFrame 拆分成多个表。...如果在列表的位置使用None,那么该表将具有给定 DataFrame 的其余未指定的列。参数selector定义了哪个表是选择器表(你可以从中进行查询)。...") 如果您使用pyarrow进行序列化,将创建一个包含三列的 Parquet 文件:a、b和__index_level_0__。...read_sql_table() 将读取给定表名的数据库表,可选择性地读取一部分列。

    2.3K00

    Spark Parquet详解

    假设上述数据中每个数据值占用空间大小都是1,因此二者在未压缩下占用都是6; 我们有在大规模数据进行如下的查询语句: SELECT 姓名,年龄 FROM info WHERE 年龄>=16; 这是一个很常见的根据某个过滤条件查询某个表中的某些列...repeated group hobbies{ required string hobby_name; repeated string home_page; } } 这里将兴趣列复杂了一些以展示...') 上述代码需要注意的是要单独安装pyarrow库,否则会报错,pandas是基于pyarrow对parquet进行支持的; PS:这里没有安装pyarrow,也没有指定engine的话,报错信息中说可以安装...pyarrow或者fastparquet,但是我这里试过fastparquet加载我的parquet文件会失败,我的parquet是spark上直接导出的,不知道是不是两个库对parquet支持上有差异还是因为啥...,pyarrow就可以。。。。

    2.1K43

    10个Pandas的另类数据处理技巧

    1、Categorical类型 默认情况下,具有有限数量选项的列都会被分配object 类型。但是就内存来说并不是一个有效的选择。我们可以这些列建立索引,并仅使用对对象的引用而实际值。...每行有三列:anchor, positive, and negative.。 如果类别列使用 Categorical 可以显着减少内存使用量。...4.5 MB | | triplets_525k.parquet | 1.9 MB | +------------------------+---------+ 读取parquet需要额外的包,比如pyarrow...chatgpt说pyarrow比fastparquet要快,但是我在小数据集上测试时fastparquet比pyarrow要快,但是这里建议使用pyarrow,因为pandas 2.0也是默认的使用这个...10、数组列分成多列 假设我们有这样一个数据集,这是一个相当典型的情况: import pandas as pd df = pd.DataFrame({"a": [1, 2, 3],

    1.5K40

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

    Elizabeth 58 female 要手动将数据存储在表中,请创建一个DataFrame。...记住 导入包,即 import pandas as pd 数据表以 pandas 的 DataFrame 形式存储 DataFrame 中的每一列都是一个 Series 您可以通过将方法应用于...记住 导入包,即import pandas as pd 数据表以 pandas DataFrame的形式存储 每个DataFrame中的列都是一个Series 你可以通过将方法应用于...当特别关注表中位置的某些行和/或列时,请在选择括号[]前使用iloc运算符。 使用loc或iloc选择特定行和/或列时,可以为所选数据分配新值。...当特别关注表中位置的某些行和/或列时,请在选择括号[]前使用iloc运算符。 在使用loc或iloc选择特定行和/或列时,可以为所选数据分配新值。

    4.3K10

    pyspark 原理、源码解析与优劣势分析(2) ---- Executor 端进程间通信和序列化

    对于直接使用 RDD 的计算,或者没有开启 spark.sql.execution.arrow.enabled 的 DataFrame,是将输入数据按行发送给 Python,可想而知,这样效率极低。...writer.writeBatch() arrowWriter.reset() 可以看到,每次取出一个 batch,填充给 ArrowWriter,实际数据会保存在 root 对象中,然后由 ArrowStreamWriter 将...if writer is not None: writer.close() def load_stream(self, stream): import pyarrow...= pa.ipc.open_stream(stream) for batch in reader: yield batch 可以看到,这里双向的序列化、反序列化,都是调用了 PyArrow...pandas.Series. """ batches = super(ArrowStreamPandasSerializer, self).load_stream(stream) import pyarrow

    2K20
    领券