【发布时间】:2019-05-07 22:41:16
【问题描述】:
我有一个作为 news_dataset 的 pandas 数据框,其中 id 列是文章 ID,Content 列是文章内容(大文本)。给定,
ID Content
17283 WASHINGTON — Congressional Republicans have...
17284 After the bullet shells get counted, the blood...
17285 When Walt Disney’s “Bambi” opened in 1942, cri...
17286 Death may be the great equalizer, but it isn’t...
17287 SEOUL, South Korea — North Korea’s leader, ...
现在,我只想将 pandas 数据框转换为字典,例如 ID 将是一个键,Content 将是值。基本上,我一开始所做的事情是这样的,
dd={}
for i in news_dataset['ID']:
for j in news_dataset['Content']:
dd[j]=i
这段代码很可悲,需要花费大量时间(> 4 分钟)来处理。因此,在检查了一些更好的方法(stackoverflow)之后。我最后做的是,
id_array=[]
content_array=[]
for id_num in news_dataset['ID']:
id_array.append(id_num)
for content in news_dataset['Content']:
content_array.append(content)
news_dict=dict(zip(id_array,content_array))
此代码需要将近 15 秒才能执行。
我想问的是,
i) 第一个代码有什么问题,为什么要花这么多时间来处理?
ii) 在另一个 for 循环中使用 for 循环是不是在处理大型文本数据时进行迭代的错误方式?
iii) 在单个查询中使用 for 循环创建字典的正确方法是什么?
【问题讨论】:
标签: python-3.x pandas dictionary