【发布时间】:2020-10-21 03:44:13
【问题描述】:
我有两个单独的 CSV 文件:
一个包含公司名称和该公司的 URL,另一个包含公司 URL 以及该 URL 中该公司的电话号码。
csv_1 示例:
Company Name, Company_URL
comp_1 , comp_1_url
comp_2, comp_2_url
comp_3, comp_3_url
csv_2 示例:
Company URL, Company_Num
comp_1_url, comp_1_phone num 1
comp_1_url, comp_1_phone num 2
comp_2_url, comp_2_phone num 1
comp_3_url, comp_3_phone num 1
我想将 csv_1 中的公司名称与 csv_2 的结果相关联。
预期输出:
Company Name, Company URL, Company_Num
comp_1, comp_1_url, comp_1_phone num 1
comp_1, comp_1_url, comp_1_phone num 2
comp_2, comp_2_url, comp_2_phone num 1
comp_3, comp_3_url, comp_3_phone num 1
我尝试将 CSV_1 转换为字典,然后将字典中的值 (Company_URL) 与 CSV_2 中的 url (Company_2 URL) 进行匹配,但需要了解如何获取电话号码:
dictionary = {}
def dictionary_test():
for key in companies:
for value in companies_url_list:
dictionary[key] = value
# companies_url_list.remove(value)
break
dictionary_test()
dictionary output:
{'comp_1':comp_1_url,'comp_2':comp_2_url,'comp_3':comp_3_url}
matches = [k for k, v in dictionary.items() if v in urls]
print(len(phone_numbers))
print(len(matches))
如果 CSV_1 中的 Company_url 与 CSV_2 中的 URL 匹配,我需要一种方法来附加公司名称列表。最好的方法是什么?
编辑:
test_dict = {} #company_url from CSV_1 as key and comp_name as value
for key in comp_url:
for value in comp_name:
test_dict[key] = value
break
来自 CSV_2 的列表:
bbb_url = company_url_and_phone['URL Searched'].to_list()
bbb_phone = company_url_and_phone['Phone Numbers'].to_list()
【问题讨论】:
-
将它们加载到 pandas 数据帧中并加入数据帧。
-
它们的长度不同。每个公司 URL 可能会返回多个电话号码结果,并且 URL 与电话号码一起附加到列表中。
-
加入并不要求它们具有相同的长度。
-
它将在结果中为所有匹配的 URL 创建多行。
-
您能在下面提供一个简短的示例答案吗?
标签: python dictionary list-comprehension