【发布时间】:2021-10-05 15:40:23
【问题描述】:
我正在编写一个 python 脚本,它可以自动为我拨打一些电话。我有一个可以与 REST API 交互的工具进行测试。我需要根据输入的国家代码选择特定的运营商。所以假设我的用户在我的 excel 文档中输入 12145221414,我想选择 AT&T 作为运营商。如何接受表格第一列的输入,然后输出第二列的内容?
显然,这可能有点棘手,因为我需要匹配电话号码前面最多 3-4 位数字。我的计划是编写一个函数,然后获取初始号码,然后插入需要用于该国家/地区的运营商。
知道如何从表中提取这些数据吗?如果您输入巴巴多斯 (1246),我将如何做到这一点,然后选择 Lime 而不是 AT&T?
这是我到目前为止的代码和表格。我不确定如何读取一个表,然后从该表中提取数据以用于我的匹配函数。
testlist.xlsx
| Number |
|:------------|
|8155555555|
|12465555555|
|12135555555|
|96655555555|
|525555555555|
carriers.xlsx
| countryCode | Carrier |
|:------------|:--------|
|1246|LIME|
|1|AT&T|
|81|Softbank|
|52|Telmex|
|966|Zain|
import pandas as pd
import os
FILE_PATH = "C:/temp/testlist.xlsx"
xl_1 = pd.ExcelFile(FILE_PATH)
num_df = xl_1.parse('Numbers')
FILE_PATH = "C:/temp/carriers.xlsx"
xl_2 = pd.ExcelFile(FILE_PATH)
car_df = xl_2.parse('Carriers')
for index, row in num_df.iterrows():
【问题讨论】:
-
如果可能,请尝试使用 CSV。 CSV 是开源的,也与 excel 兼容。 XLSX 是专有的,支持有限。
-
使用 CSV 的问题在于它没有像 XLS 或 XLSX 文件那样被压缩,从而导致文件呈指数级增长。更不用说在以 CSV 格式保存时处理大量数字的问题,就像在这个线程 stackoverflow.com/questions/22647042/… 中一样
-
换句话说,您想从第二个表中找到您号码中包含的最长前缀吗?
-
你能用你需要的正则表达式匹配来检查my answer吗?它应该相对较快,因为只使用第一个匹配项。
标签: python python-3.x pandas dataframe iterator