python-3.x - 在python中使用带有apply的自定义函数时出现IndexingError
问题描述
我需要从我的数据中验证电话号码是否有效。我在 python 中使用电话号码库
我创建了一个有效的 for 循环,但它太慢了,所以我试图在 apply 函数中使用相同的 for 循环,但出现索引错误
for i in range(len(df)):
num = df.loc[i,'Primary Phone #']
region = df.loc[i,'Override Address Country']
try:
output = phonenumbers.parse(num, region=region)
except phonenumbers.NumberParseException:
df.loc[i,'validation'] = False
else:
df.loc[i,'validation'] = phonenumbers.is_valid_number(output)
temp_data.apply(number_validation,轴 = 0/1)
IndexingError: ('Too many indexers', '发生在索引工单代码')
解决方案
我可能会apply
像您尝试的那样使用 ,但请确保提供参数:
def verify_number(x):
return phonenumbers.parse(
x['Primary Phone #'],
region=x['Override Address Country']
)
df.apply(verify_number, axis=1)
如果这仍然太慢,您可以考虑使用 和 来提高性能,Cython
如pandas用户指南中所述。Numba
pandas.eval()
推荐阅读
- excel - 如何在 VBA 中定义下一个循环的范围
- windows - 如何写入 BitLocker 加密卷的物理扇区?
- python - Django 路径不起作用,它会将我引导到错误的网站
- javascript - vue watch sublist如何变化或v-model
- javascript - 如何为我的应用获取 Shopify 商店产品的所有数据?
- c# - 当我更新现有数据时 System.Reflection.TargetException ERROR
- excel - Excel / Apache POI:如何转义 Excel 单元格的字符串?
- flutter - 如何使用 Dart::FFI 在颤振中使用 C++ 库?
- php - Foreach 2 var $_POST
- jquery - $,get 方法在 PHP 更新后不读取新数据