相关疑难解决方法(0)

将元信息/元数据添加到pandas DataFrame中

是否可以向pandas DataFrame添加一些元信息/元数据?

例如,用于测量数据的仪器名称,负责的仪器等.

一种解决方法是创建一个包含该信息的列,但在每一行中存储单条信息似乎很浪费!

python pandas

73
推荐指数
8
解决办法
3万
查看次数

如何将任意元数据分配给 pyarrow.Table / Parquet 列

用例

我正在使用 Apache Parquet 文件作为我在 Python 中使用 GeoPandas 处理大型空间数据的快速 IO 格式。我将要素几何存储为 WKB,并希望将坐标参考系统 (CRS) 记录为与 WKB 数据关联的元数据。

代码问题

我正在尝试将任意元数据分配给一个pyarrow.Field对象。

我试过的

假设tablepyarrow.Tabledf, a的实例化pandas.DataFrame

df = pd.DataFrame({
        'foo' : [1, 3, 2],
        'bar' : [6, 4, 5]
        })

table = pa.Table.from_pandas(df)
Run Code Online (Sandbox Code Playgroud)

根据pyarrow文档,列元数据包含在field属于schema( source ) 的 a 中,并且可选的元数据可以添加到field( source ) 中。

如果我尝试为该metadata属性赋值,则会引发错误:

>>> table.schema.field_by_name('foo').metadata = {'crs' : '4283'}
AttributeError: attribute 'metadata' of 'pyarrow.lib.Field' objects …
Run Code Online (Sandbox Code Playgroud)

python gis pandas parquet pyarrow

7
推荐指数
1
解决办法
2466
查看次数

如何使用 pyarrow 存储自定义 Parquet 数据集元数据?

如何使用ParquetDatasetpyarrow 将自定义元数据存储?

例如,如果我使用 Dask 创建 Parquet 数据集

import dask
dask.datasets.timeseries().to_parquet('temp.parq')
Run Code Online (Sandbox Code Playgroud)

然后我可以使用 pyarrow 阅读它

import pyarrow.parquet as pq
dataset = pq.ParquetDataset('temp.parq')
Run Code Online (Sandbox Code Playgroud)

但是,我用于为单个 parquet 文件编写元数据的相同方法(在如何使用 pyarrow 编写 Parquet 元数据?中概述)不适用于 a ParquetDataset,因为没有replace_schema_metadata函数或类似的函数。

我想我可能想编写一个自定义_custom_metadata文件,因为我想存储的元数据与整个数据集有关。我想这个过程会类似于:

meta = pq.read_metadata('temp.parq/_common_metadata')
custom_metadata = { b'type': b'mydataset' }
merged_metadata = { **custom_metadata, **meta.metadata }
# TODO: Construct FileMetaData object with merged_metadata
new_meta.write_metadata_file('temp.parq/_common_metadata')
Run Code Online (Sandbox Code Playgroud)

python parquet pyarrow

7
推荐指数
1
解决办法
1198
查看次数

如何读取箭头镶木地板键值元数据?

当我在 R 和 Python 中保存 parquet 文件(使用 pyarrow)时,我得到一个保存在元数据中的箭头模式字符串。

\n\n

如何读取元数据?是Flatbuffer编码的数据吗?模式的定义在哪里?它没有列在箭头文档网站上。

\n\n

元数据是一个键值对,如下所示

\n\n
key: "ARROW:schema"\n\nvalue: "/////5AAAAAQAAAAAAAKAAwABgAFAAgACgAAAAABAwAEAAAAyP///wQAAAABAAAAFAAAABAAGAAIAAYABwAMABAAFAAQAAAAAAABBUAAAAA4AAAAEAAAACgAAAAIAAgAAAAEAAgAAAAMAAAACAAMAAgABwA\xe2\x80\xa6\n
Run Code Online (Sandbox Code Playgroud)\n\n

用 R 写的结果

\n\n
key: "ARROW:schema"\n\nvalue: "/////5AAAAAQAAAAAAAKAAwABgAFAAgACgAAAAABAwAEAAAAyP///wQAAAABAAAAFAAAABAAGAAIAAYABwAMABAAFAAQAAAAAAABBUAAAAA4AAAAEAAAACgAAAAIAAgAAAAEAAgAAAAMAAAACAAMAAgABwA\xe2\x80\xa6\n
Run Code Online (Sandbox Code Playgroud)\n

parquet apache-arrow pyarrow

4
推荐指数
1
解决办法
1475
查看次数

标签 统计

parquet ×3

pyarrow ×3

python ×3

pandas ×2

apache-arrow ×1

gis ×1