用91替换手机号码中的前导零

时间:2019-05-09 13:50:07

标签: pandas

如何用91 in(在数据框df下面)替换前导0 使用pandas数据框功能从phone1到phone7列

#        kac   play_id      phone1     phone2 phone3 phone4     phone5 phone6     phone7
# 0  5004490  20002075  0900031349  090891349
# 1  5003807  00601731                                       088235311
# 2  5003808  00601731                                                         088235311

预期产量:

#        kac   play_id      phone1     phone2 phone3 phone4     phone5 phone6     phone7
# 0  5004490  20002075  91900031349  9190891349
# 1  5003807  00601731                                       9188235311
# 2  5003808  00601731                                                         9188235311

2 个答案:

答案 0 :(得分:2)

pandas.DataFrame.replaceregex=True

df.update(df.filter(like='phone').replace('^0', '91', regex=True))

df

       kac   play_id       phone1      phone2 phone3 phone4      phone5 phone6      phone7
0  5004490  20002075  91900031349  9190891349                                             
1  5003807    601731                                         9188235311                   
2  5003808    601731                                                            9188235311

设置

df = pd.DataFrame({
    'kac': ['5004490', '5003807', '5003808'],
    'play_id': ['20002075', '601731', '601731'],
    'phone1': ['0900031349', '', ''],
    'phone2': ['090891349', '', ''],
    'phone3': ['', '', ''],
    'phone4': ['', '', ''],
    'phone5': ['', '088235311', ''],
    'phone6': ['', '', ''],
    'phone7': ['', '', '088235311']
})

答案 1 :(得分:1)

IIUC np.where + startswith

l=[np.where(df[x].str.startswith('0'),'91'+df[x].str[1:],df[x]).tolist() for x in df.columns[2:]]
df.loc[:,'phone1':]=np.array(l).T
相关问题