惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

Microsoft Azure Blog
Microsoft Azure Blog
H
Hacker News: Front Page
A
About on SuperTechFans
云风的 BLOG
云风的 BLOG
aimingoo的专栏
aimingoo的专栏
Martin Fowler
Martin Fowler
博客园 - 叶小钗
Last Week in AI
Last Week in AI
Recent Announcements
Recent Announcements
P
Palo Alto Networks Blog
Webroot Blog
Webroot Blog
Hacker News: Ask HN
Hacker News: Ask HN
IT之家
IT之家
K
KPMG report finds enterprise disconnect between AI and its ROI | CIO
T
Threat Research - Cisco Blogs
C
CERT Recently Published Vulnerability Notes
Google DeepMind News
Google DeepMind News
Hugging Face - Blog
Hugging Face - Blog
H
Help Net Security
P
Privacy & Cybersecurity Law Blog
C
Cisco Blogs
罗磊的独立博客
The GitHub Blog
The GitHub Blog
M
MIT News - Artificial intelligence
人人都是产品经理
人人都是产品经理
The Cloudflare Blog
Y
Y Combinator Blog
AWS News Blog
AWS News Blog
H
Hackread – Cybersecurity News, Data Breaches, AI and More
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
K
Kaspersky official blog
博客园 - 司徒正美
Threat Intelligence Blog | Flashpoint
Threat Intelligence Blog | Flashpoint
Security Archives - TechRepublic
Security Archives - TechRepublic
The Last Watchdog
The Last Watchdog
Jina AI
Jina AI
MyScale Blog
MyScale Blog
TaoSecurity Blog
TaoSecurity Blog
大猫的无限游戏
大猫的无限游戏
cs.CL updates on arXiv.org
cs.CL updates on arXiv.org
Cisco Talos Blog
Cisco Talos Blog
美团技术团队
T
Tor Project blog
cs.CV updates on arXiv.org
cs.CV updates on arXiv.org
博客园 - 【当耐特】
博客园 - 聂微东
V2EX - 技术
V2EX - 技术
I
Intezer
V
Visual Studio Blog
酷 壳 – CoolShell
酷 壳 – CoolShell

博客园 - 神游虚空

解决 GDAL 用 C# 访问时,中文乱码问题。 学习AI编程 安装 RAGFlow 安装 KTransformer 量化投资赚的哪方面的钱? python中调用 .net 的 dll 时,报错:Exception has occurred: TypeLoadException 使用 Open XML SDK 实现 html 富文本转换为 docx 格式示例 vue项目服务器部属源码调试解决办法 vue3 + ts + element_plus 创建后台管理系统,学习记录 大A指数周内效应分析 两个通达信公式 如何在.netcore 上实现 Rbac 权限管理 修道是精神上的减熵过程 BPMN2.0 Specifaction 节选翻译,10.4.6 事件处理(handling Events,原文 275页) BPMN2.0 Specifaction 节选翻译,10.4 事件 Events (原文233页) 使用ef或dbcontext的时候主要注意三个问题 EFCore 中 group 分组后,只选出每组中含有最大值的数据行 BPMN2.0 Specifaction 节选翻译,10.2.8 循环特征 Loop Characteristics (原文 189页) BPMN2.0 Specifaction 节选翻译,10.2.5 子流程 Sub-Processes (原文173页) BPMN2.0 Specifaction 节选翻译,10 Process (原文145页)
在python中 先调用C#的dll 返回了一个类的列表,如何把这个列表转换为 python 中的 DataFrame?
神游虚空 · 2023-03-16 · via 博客园 - 神游虚空

你可以使用`pandas.DataFrame`的构造函数,将类的列表转换成一个包含类属性的字典列表,然后再将这个字典列表作为参数调用`pandas.DataFrame`构造函数。下面是一个示例代码:

假设C#的DLL文件包含一个名为`MyClass`的类,它有三个属性:`name`,`age`和`gender`。我们从DLL文件中调用一个函数`get_data()`,这个函数返回一个`MyClass`类的列表。下面是一个Python代码示例:

```python
import pandas as pd
import ctypes

# 加载DLL文件
mylib = ctypes.cdll.LoadLibrary("MyLibrary.dll")

# 获取get_data函数
get_data_func = mylib.get_data
get_data_func.restype = ctypes.POINTER(ctypes.py_object)

# 调用get_data函数
data_list = get_data_func().contents

# 将类的列表转换为一个字典列表
dict_list = []
for instance in data_list:
dict_list.append({'name': instance.name, 'age': instance.age, 'gender': instance.gender})

# 将字典列表转换为DataFrame
df = pd.DataFrame(dict_list)
```

在上面的代码中,我们首先加载DLL文件并获取`get_data`函数。然后,我们调用`get_data`函数并将返回值存储在`data_list`中。接下来,我们遍历`data_list`列表并将`MyClass`类的属性和值作为键值对添加到一个字典中,然后将这个字典添加到`dict_list`列表中。最后,我们将`dict_list`传递给`pandas.DataFrame`构造函数,将其转换为一个DataFrame对象。

import pandas as pd
from ctypes import cdll, c_double, c_char_p
dll = cdll.LoadLibrary('my_dll.dll')  # 替换成实际的 DLL 文件名

# 调用 C# DLL 的函数,返回一个列表
my_class_list = dll.my_function()  

# 将列表转换为字典
dict_list = []
for my_class in my_class_list:
    dict_list.append(vars(my_class))

# 将字典列表转换为 DataFrame
df = pd.DataFrame(dict_list)