python-3.x - 如何继续向现有数据框添加数据框?
问题描述
我的输入是列表列表。我正在尝试将每个子列表转换为具有两列的数据框,然后将所有数据框一起转换。
我在该列表中有大约 80 多个子列表,以下只是一个示例:
[[('04-24-2019 18:51:54:629', 'a'),
('04-24-2019 18:51:54:790', 'p'),
('04-24-2019 18:51:54:934', 'p'),
('04-24-2019 18:51:55:65', 'l'),
('04-24-2019 18:51:55:157', 'e'),
('04-24-2019 18:51:57:710', 'b'),
('04-24-2019 18:51:57:862', 'o'),
('04-24-2019 18:51:58:501', 'backspace'),
('04-24-2019 18:51:59:368', 'e'),
('04-24-2019 18:51:59:507', 'e'),
('04-24-2019 18:51:59:800', 's'),
('04-24-2019 18:52:05:502', 'backspace')],
[('04-24-2019 18:51:54:629', 'a'),
('04-24-2019 18:51:54:790', 'p'),
('04-24-2019 18:51:54:934', 'p'),
('04-24-2019 18:51:55:65', 'l'),
('04-24-2019 18:51:55:157', 'e'),
('04-24-2019 18:51:57:710', 'b'),
('04-24-2019 18:51:57:862', 'o'),
('04-24-2019 18:51:58:501', 'backspace'),
('04-24-2019 18:51:59:368', 'e'),
('04-24-2019 18:51:59:507', 'e'),
('04-24-2019 18:51:59:800', 's'),
('04-24-2019 18:52:05:502', 'backspace')],
[('04-24-2019 18:51:54:629', 'a'),
('04-24-2019 18:51:54:790', 'p'),
('04-24-2019 18:51:54:934', 'p'),
('04-24-2019 18:51:55:65', 'l'),
('04-24-2019 18:51:55:157', 'e'),
('04-24-2019 18:51:57:710', 'b'),
('04-24-2019 18:51:57:862', 'o'),
('04-24-2019 18:51:58:501', 'backspace'),
('04-24-2019 18:51:59:368', 'e'),
('04-24-2019 18:51:59:507', 'e'),
('04-24-2019 18:51:59:800', 's'),
('04-24-2019 18:52:05:502', 'backspace')]]
这是将原始数据转换为列表列表 -
org_time_list = []
for x in range(len(data)):
dd = (data[x]["input_clicks"])
org_time_list.append(list(dd.items()))
org_time_list
这是试图将每个子列表转换为数据框并将这些数据框附加在一起 -
df_3 = pd.DataFrame()
for x in org_time_list:
for y in x:
df_3.append(pd.DataFrame((y), columns=['Date', 'DateValue']))
df_3
我期望有一个数据框,其中包含列表列表中的所有数据,只有两列。以下是子列表的示例。
Date DateValue
0 04-24-2019 18:51:54:629 a
1 04-24-2019 18:51:54:790 p
2 04-24-2019 18:51:54:934 p
3 04-24-2019 18:51:55:65 l
4 04-24-2019 18:51:55:157 e
5 04-24-2019 18:51:57:710 b
6 04-24-2019 18:51:57:862 o
7 04-24-2019 18:51:58:501 backspace
8 04-24-2019 18:51:59:368 e
9 04-24-2019 18:51:59:507 e
10 04-24-2019 18:51:59:800 s
11 04-24-2019 18:52:05:502 backspace
解决方案
尝试使用这种简单的方法:
import functools
import operator
temp_data = functools.reduce(operator.concat, org_time_list) #flatten the list of lists
df_3 = pd.DataFrame(temp_data, columns=['Date', 'DateValue'])
如果您可以展示原始数据的外观,我认为也可以避免第一个循环。
推荐阅读
- java - 每次调用方法时如何使方法中的数组不改变
- android - 使用 koitlin 时使用 parcelable 在 android 中崩溃
- python - 比较两个数据帧的列值和增量计数
- spring-boot - 如何在 OAuth2 资源服务器中获得经过身份验证的用户的所有权限
- python - 我需要单击空白区域以删除工具提示,因为它阻止了复选框
- css - CSS Grid - 为响应式屏幕格式化行和列
- laravel - 如何在laravel中进行条带付款的部分退款
- angular - 如何在 ng2-pdf-viewer 中添加工作人员?任何人都可以
- java - 使用可选参数调用 JAX-RS 方法
- html - 试图从 url 中抓取 web 数据使用框架。获取 MSHTML.HTMLDocument 对象中的数据。我想将对象另存为 .xls 在硬盘上