我终于想出了如何使用DataFrame中的_Metadata,一切正常,除了我无法坚持它,如hdf5或json.我知道它有效,因为我复制框架和_Metadata属性复制“非_Metadata”属性不.
例
df = pandas.DataFrame #make up a frame to your liking
pandas.DataFrame._Metadata = ["testMeta"]
df.testMeta = "testMetaval"
df.badMeta = "badMetaval"
newframe = df.copy()
newframe.testMeta -->outputs "testMetaval"
newframe.badMeta ---> raises attribute error
#json test
df.to_json(Path)
revivedjsonframe = pandas.io.json.read_json(Path)
revivedjsonframe.testMeta ---->raises Attribute Error
#hdf5 test
revivedhdf5frame.testMeta ---> returns None
这个人https://stackoverflow.com/a/25715719/4473236说它对他有用,但我是这个网站(和熊猫)的新手,不能发帖到那个帖子或直接问他.
解决方法:
_Metadata以下划线开头,这意味着它不是公共API的一部分.它不适用于用户代码 – 我们可能会在没有警告的任何未来版本的pandas中破坏它.
我强烈建议不要使用这个“功能”.目前,使用DataFrame保存元数据的最佳选择可能是编写自己的包装类并自己处理持久性.