如何使用自定义IO功能扩展熊猫?

时间:2018-09-23 09:14:22

标签: python pandas setuptools

我已经编写了一些函数来从自定义文件格式读取数据并将其转换为熊猫数据框。我希望能够从pandas命名空间中访问此文件,即,在使用pip安装软件包后,我应该能够

import pandas as pd
pd.read_custom("/my/file")

我的问题是:

  1. 这有可能吗?
  2. 我将如何实施?

P.S:我记得熊猫对羽毛的支持曾经以这种方式起作用,直到它正式成为pandas.io的一部分。我似乎现在找不到它的代码。

1 个答案:

答案 0 :(得分:1)

只需创建您自己的类即可,该类应继承DataFrame类并实现to_custom()方法。

简单的例子:

class MyDF(pd.DataFrame):
    def to_custom(self, filename, **kwargs):
        # put your deserializer code here ...
        return self.to_csv(filename, **kwargs)

测试:

In [16]: df = pd.DataFrame(np.arange(9).reshape(3,3), columns=list('abc'))

In [17]: mdf = MyDF(df)

In [18]: type(mdf)
Out[18]: __main__.MyDF

In [19]: mdf.to_custom('d:/temp/res.csv', index=False)

结果:

In [20]: from pathlib import Path

In [21]: print(Path('d:/temp/res.csv').read_text())
a,b,c
0,1,2
3,4,5
6,7,8