如果数字为 1,则从 pandas 列中删除第一个字符

Chr*_*her 2 python pandas

下面的代码删除任何电话号码列中的任何破折号。如果电话号码以 1 开头,我如何还删除这些列中电话号码的第一个字符。我基本上希望所有十位数字都没有前导 1。

import pandas as pd
import numpy as np
import re

df = pd.read_csv('test2.csv')

cols_to_check = ['Phone', 'phone', 'Phone.1']

df[cols_to_check] = df[cols_to_check].replace({'-':''}, regex=True)

df.to_csv('testnew.csv', mode = 'w', index=False)
Run Code Online (Sandbox Code Playgroud)

spa*_*ead 6

这是使用该apply工具将具有非平凡逻辑的函数应用于列的示例:

for col in cols_to_check:
    df[col] = df[col].apply(lambda x : x[1:] if x.startswith("1") else x)
Run Code Online (Sandbox Code Playgroud)

另见的概述apply