是否可以将一些元信息/元数据添加到熊猫数据框?
例如,用于测量数据的仪器名称、负责的仪器等。
一种解决方法是创建一个包含该信息的列,但是在每一行中存储一条信息似乎很浪费!
当然,像大多数Python对象一样,您可以将新属性附加到熊猫. DataFrame
:
import pandas as pd
df = pd.DataFrame([])
df.instrument_name = 'Binky'
但是请注意,虽然您可以将属性附加到DataFrame,但在DataFrame上执行的操作(例如groupby
、pivot
、join
或loc
等等)可能会返回一个没有附加元数据的新DataFrame。熊猫还没有强大的方法来传播附加到DataFrame的元数据。
将元数据保存在文件中是可能的。您可以在此处找到如何将元数据存储在HDF5文件中的示例。
从熊猫1.0开始,可能更早,现在有一个Dataframe. attrs
属性。它是实验性的,但这可能是您将来想要的。例如:
import pandas as pd
df = pd.DataFrame([])
df.attrs['instrument_name'] = 'Binky'
在此处的文档中找到它。
尝试使用to_parquet
和from_parquet
,它似乎不会持续存在,所以请务必检查您的用例。
我自己也遇到了这个问题。从熊猫0.13开始,数据帧有一个_metadata属性,它通过返回新数据帧的函数持续存在。似乎也能很好地通过序列化(我只尝试过json,但我想hdf也被覆盖了)。