是否有python pandas的C/C++ API?

THM*_*THM 10 c python api pandas

我正在使用C/C++从传统后端系统中提取海量数据,并使用它将其移至Python distutils.在Python中获取数据后,我将其放入pandas DataFrame对象进行数据分析.现在我想走得更快,并希望避免第二步.

是否有用于pandas的C/C++ API在C/C++中创建DataFrame,添加我的C/C++数据并将其传递给Python?我正在考虑类似于numpy C API的东西.

我已经想要在C中创建numpy数组对象作为一种解决方法,但我大量使用时间序列数据,并且也喜欢拥有TimeSeries和date_range对象.

Tom*_*iak 9

我正在处理类似的问题,使用C API从Pandas不支持的格式加载数据.我找到了两种方法来解决这个问题,希望有人可能会发现它们很有用.

  • Pandas数据框是纯Python类,因此它们不容易从C/C++构造,但各列的底层数据存储(参见类Series source)是numpy 1D数组.Numpy有一个很好的C API,你可以从C构造numpy数组,然后将它传递给你的Python代码.

  • 第二种解决方案是为Pandas编写自己的输入模块.这并不像听起来那么多,可能非常有效.Pandas低级IO模块是用Cython编写的(Python和C之间的特殊语言,编译为C),例如,参见parser.pyx.虽然这个特定的解析器非常复杂,但是你的基本上只需调用你的遗留C代码.


eca*_*mur 7

所有的pandas类(TimeSeries,DataFrame,DatetimeIndex等)都有纯Python定义,因此没有C API.您可能最好将N中的ndarray从C传递到Python代码,并让Python代码从中构建pandas对象.

如果有必要,您可以使用PyObject_CallFunction等来调用pandas构造函数,但是您必须注意从模块导入访问名称并检查错误.


小智 5

现在有一个C ++库,就接口和功能而言,它等效于Pandas软件包。请参阅Linkedin中的这篇文章“ https://www.linkedin.com/pulse/pythons-pandas-c-update-hossein-moein/ ”“开源代码位于” https://github.com/hosseinmoein/DataFrame

  • @GraphicsMuncher如果链接消失,在这种情况下,无论其独立性如何,答案都将毫无用处。 (9认同)
  • 请在StackOverflow上发布完整的说明-如果链接消失,此答案将无用。 (4认同)