【发布时间】:2018-09-18 06:50:51
【问题描述】:
我有一个 pandas 数据框 df_data,它有一个名为“number”的列,其中包含各种形式的电话号码。例如,电话号码可以是 234-567-8901、2345678901 甚至 (234)-567-8901 的形式。我正在尝试有效地将这一列中的每一行更改为只有数字的电话号码(即 2345678901)。但是,我的代码会这样做,因为几乎有 1M 行,所以代码会永远运行,并且在大多数情况下甚至都不会完成。有一个更好的方法吗?归根结底,我有兴趣获得一列仅包含区号的列。列中的某些值不存在且值为 nan。非常感谢任何帮助或指导。
for i in range(np.shape(df_data)[0]):
j = df_data.loc[i,'number']
if(j==j):
df_data.loc[i,'number']= re.findall("\d{3}[-\.\s]??\d{3}[-\.\s]??\d{4}|\(\d{3}\)\s*\d{3}[-\.\s]??\d{4}|\d{3}[-\.\s]??\d{4}",j)
【问题讨论】: