python - 创建具有可变行数的数据框
问题描述
我已经创建了这个函数来创建一个数据框,每次代理调用函数时都会添加一个新的完整行。问题是,我希望之前创建的行保留在数据框中,这就是我使用指令追加的原因。每次调用它都会从头开始创建数据框,因此前一行被删除,我希望索引不断增加并添加新行。
这是Python中函数的代码:
def list_active_agents(agent_id, agent_name, agent_type, activation_time):
list = []
list.append({
'agent_id': agent_id,
'agent_name': agent_name,
'agent_type': agent_type,
'activation_time': activation_time
})
columns = ['agent_id', 'agent_name', 'agent_type', 'activation_time']
list_aa = pd.DataFrame(list, columns=columns)
list_aa = list_aa.drop_duplicates(keep='first')
return list_aa
我已经尝试使用该指令;
list_aa.empty
,以确认 DataFrame 何时为空,但它不能按我想要的方式工作。
帮助。
解决方案
尝试:
li = lambda x,y,z,w : {
'agent_id': x,
'agent_name': y,
'agent_type': z,
'activation_time': w
}
columns = ['agent_id', 'agent_name', 'agent_type', 'activation_time']
list_aa = pd.DataFrame([], columns=columns)
def list_active_agents(agent_id, agent_name, agent_type, activation_time):
global list_aa
list_aa = list_aa.append(li(agent_id, agent_name, agent_type, activation_time), ignore_index=True)
list_aa = list_aa.drop_duplicates(keep='first')
return list_aa
list_active_agents(1, 'a', 't', 10)
list_active_agents(1, 'b', 't', 10)
agent_id agent_name agent_type activation_time
0 1 a t 10
1 1 b t 10
list_active_agents(1, 'a', 't', 10)
list_active_agents(1, 'a', 't', 10)
agent_id agent_name agent_type activation_time
0 1 a t 10
推荐阅读
- amazon-web-services - 使用 aws cli 将带有元数据的项目上传到 Amazon S3 存储桶
- python - 笔记本单元格中的多个命令以激活虚拟环境
- mysql - 计算2列Mysql
- flutter - Column 中的行不间隔其子项 Flutter
- android - 是否可以在 AOSP 中将预安装的 android 应用程序的活动显示为 Boot LOGO?
- python - Elastic Beanstalk - Daphne 不提供静态文件
- server - Blazor 服务器端计时器运行异常
- html - 我的 asp.net 核心 mvc 中的引导单选按钮不可选择
- java - 如何使用 mockito 模拟 keycloak.admin.client.Keycloak 的 keycloak 类?
- python - 在 PyQt5/Pyside2 中动态添加小部件到流布局