簡體   English   中英

Python:使用循環將新列添加到數據框

[英]Python: using loop to add new column to dataframe

我有數據框的列

url    
http://www.utt66.ru/cat/13972/
https://yandex.ru/yandsearch?clid=2186618&text=%D0%BA%D0%B0%D0%BB%D1%8C%D1%8F%D0%BD%D1%8B%20khalil%20mamoon%20%D0%BA%D1%83%D0%BF%D0%B8%D1%82%D1%8C%20
http://yandex.ru/clck/jsredir?from=yandex.ru%3Byandsearch%3Bweb%3B%3B&text=&etext=1086.0aUeAWfTXcRUqS1ZI5nAyK9j2Mh6yse_NXu9LQ-mWhfjitIqsM3jlM3ks26caUTmE7X0u6HNg06uUGrA-9hHsQ.b9a03b0331f4f4f46de76151fcec7f63060561ea&uuid=&state=zRrSeA3aY6h77jydLxkYiPMTcIdGYjUu&data=UlNrNmk5WktYejR0eWJFYk1LdmtxdXhXMmR3bGZ5cW51SlVKblgwaTEzLXhaSkRmbDA2bTlsYUlpS3BROEhmaWNzNlNBR2ZSdzQ2RWVuRDk3MlFiYlRZRmxvZWZRY3NzLXVuNDl5Wm1GTlJQY2l3dHVlSzNDYms5M2hWNlZTUlRqcXBpc1JaczB3WkdleUc3YkNCYUxKcDl2akdTTTBwTVZXZ0doZ0cxRm94UkFyWHpUUjlnRkJ0bVhKY2JQbzdFWlBUejFwTlhTZEZhNW13ZE5UaC11RG1pdHhnN0RLSHEtakgtVFlvTWgta2JyaER0UGZ0UGxPU2VHaTVmNTVRN05lMFRrbmRZcC1Fd3lqeGdnb19XdGJyV1B4Y1BDZ3dVTmFhSF9jeldtV084ZjFhZFNoRkJfV3ZMOUo1WThicldXTWxELW1LeWlTbkdXSERSa2FGZ2Exa2NLSV9JeFAycQ&b64e=2&sign=6b914765fe78a3e68831c2b6828cf669&keyno=0&cst=AiuY0DBWFJ4BWM_uhLTTxGXxuvzKw7y-ntWZO3bTFIfl2v7d7v1QVNH8SEZECUcbUXMsM6Evbji9wDNUntadIeCfVACZaypi8Lv4SNxdaMz8Q5Ps4fuuccAF_tr0UwFikC6ag-nx6lB2WcA1pp9L6qSe3TipCWsrgE_JueAu4dtg3RwQcdxvk1V6q6p9QR8G8excLNwINU9EI2wQGEAfURn9Z_2zuPKTYZVucqZkm0IAcMpofvG3mJuY6EmScb54roqiYzcQA3O4eohhR0h2YGB66J-005U2&ref=orjY4mGPRjk5boDnW0uvlpAgqs5Jg3quKLfGKhgcZzlBh-w_NInSOY4el2-CiPHYpxLL_oT04HCjaJObTz07DhIg7d1EhIq2tEBI8RCSnOAHKMgOOSZIejHTFTVm7ArLNYUFK3CqIaug6TVqqCR2ki_XYek72UAw_aawNfMWBZpRptChlirBwodvzexIkSVO&l10n=ru&cts=1466022252275&mc=4.058813890331201
https://www.google.ru/search?ie=UTF-8&hl=ru&q=%D0%BA%D0%B0%D0%BB%D1%8C%D1%8F%D0%BD%D1%8B%20khalil%20mamoon%20%D0%BA%D1%83%D0%BF%D0%B8%D1%82%D1%8C&gws_rd=ssl
https://vk.com/im?peers=52525981_172627017_275902975_339455414_c107&sel=203575078
https://www.google.ru/search?ie=UTF-8&hl=ru&q=%D0%BA%D0%B0%D0%BB%D1%8C%D1%8F%D0%BD%D1%8B%20khalil%20mamoon%20%D0%BA%D1%83%D0%BF%D0%B8%D1%82%D1%8C&gws_rd=ssl
http://www.utt66.ru/cat/13972/
http://www.utt66.ru/contacts/
https://vk.com/im?peers=52525981_172627017_203575078_275902975_339455414&sel=c107
http://www.utt66.ru/feedback/

我需要從url獲取請求,其中包含yandex.ru/yandsearchgoogle.ru/search並且我使用代碼

    if '//www.google.ru/search?' not in urls[i] and '//www.google.ru/search?' in urls[i - 1]:
        get1 = urlparse(urls[i - 1])
        dict1 = parse_qs(get1[4])
        search_val = dict1['q'][0]
        searching_val.append(search_val)
    elif '//yandex.ru/yandsearch?' not in urls[i] and '//yandex.ru/yandsearch?' in urls[i - 1]:
        get2 = urlparse(urls[i - 1])
        dict2 = parse_qs(get2[4])
        search_val = dict2['text'][0]
        searching_val.append(search_val)

我想要(如果找到此字符串)在下一個字符串中寫入請求。 但是在df['search_term'] = searching_val之后,我得到了不正確的答案。 我做錯了什么?

在循環中,當這些地址都不匹配時,您沒有分配任何值。 添加else語句,然后添加或者空字符串或Null -中元素的個數searching_val 必須等於在數據幀的行數(或url欄,如果你願意的話)。

另外,將searching_val轉換為pandas.Series ,然后分配給列:

import pandas as pd

df['search_term'] = pd.Series(searching_val)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM