如何用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
答案 0 :(得分:2)
pandas.DataFrame.replace
与regex=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