Python 如何使用pybind11返回数据帧?

Python 如何使用pybind11返回数据帧?,python,c++,pybind11,Python,C++,Pybind11,我正在使用和编写Python模块 < >如何将数据文件从C++返回到Python?< P>。返回表是可能的,它可以用Python的一行转换为Python数据文件。 有关使用以下内容的现有Python库的示例: 看 请参阅和 其他链接 有时,出于日志记录的目的,将数据帧从PyBind11/C++快速“脏”地传输到Python非常有用。我们不想要速度,我们想要易于使用 构造一个字符串,表示C++中的.cv文件,返回该文件,然后将其转换为Python端的数据文件: from io import

我正在使用和编写Python模块


< >如何将数据文件从C++返回到Python?

< P>。返回表是可能的,它可以用Python的一行转换为Python数据文件。 有关使用以下内容的现有Python库的示例:

  • 请参阅和
其他链接


有时,出于日志记录的目的,将数据帧从PyBind11/C++快速“脏”地传输到Python非常有用。我们不想要速度,我们想要易于使用

构造一个字符串,表示C++中的.cv文件,返回该文件,然后将其转换为Python端的数据文件:

from io import StringIO
logCsv = 'A,B\n2.3,4.5\n'  # This string could be generated in PyBind11/C++.
LOGDATA = StringIO(logCsv)
df = pd.read_csv(LOGDATA, sep=",")
df
输出:

     A    B
0  2.3  4.5
一旦我们在数据框中有了这些数据,我们就可以将其保存为任何格式,包括Excel和Parquet。一旦数据进入Excel,调试就变得更容易了

如果单元格是以制表符分隔的,那么数据可以直接从日志粘贴到Excel中,并且它将正确地划分为多个单元格

from io import StringIO
logCsv = 'A\tB\n'
logCsv += '2.3\t4.5\n'  # This string could be generated in PyBind11/C++.
LOGDATA = StringIO(logCsv)
df = pd.read_csv(LOGDATA, sep="\t")
print(df)
# Can now paste output straight into Excel.