У меня есть кадр данных pandas как news_dataset
, где столбец 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
цикл внутри одного фрагмента запроса?