PythonPandas有C/C++ API吗?

2024-04-26 07:11:48 发布

您现在位置:Python中文网/ 问答频道 /正文

< >我使用C/C++从遗留后端系统中提取大量数据,并使用^ {CD1>}将其移到Python。在Python中获取数据后,我将其放入pandas数据框对象中进行数据分析。现在我想走得更快,避免第二步。

<熊猫>是否有C/C++ API,在C/C++中创建数据文件,添加C/C++数据,并将其传递给Python?我在想一个类似于numpy C API的东西。

我已经考虑过在C中创建numpy数组对象作为解决方案,但是我大量使用timeseries数据,并且希望同时拥有timeseries和date_range对象。


Tags: 数据对象numpyapipandasdate数据文件range
3条回答

所有的pandas类(TimeSeries、DataFrame、DatetimeIndex等)都有纯Python定义,因此没有C API。最好将numpy ndarrays从C传递到Python代码,并让Python代码从中构造pandas对象。

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

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

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

    >P>大数据帧是纯Python类,所以它们不容易从C/C++中构造,但是各个列{A1}的底层数据存储是NUMPY 1D数组。Numpy有一个很好的C API,您可以从C构造Numpy数组,然后将其传递给您的Python代码。

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

相关问题 更多 >