在 python 3 和 pandas 中我有这个数据框:
doacoes_d_2014.info()
<class 'pandas.core.frame.DataFrame'>
Int64Index: 125082 entries, 1 to 427355
Data columns (total 15 columns):
uf 125082 non-null object
partido_eleicao 125082 non-null object
cargo 125082 non-null object
nome_completo 125082 non-null object
cpf 125082 non-null object
cpf_cnpj_doador 125082 non-null object
nome_doador 125082 non-null object
valor 125082 non-null float64
tipo_receita 125082 non-null object
fonte_recurso 125082 non-null object
especie_recurso 125082 non-null object
descricao 125082 non-null object
cpf_cnpj_doador_originario 125082 non-null object
nome_doador_originario 125082 non-null object
tipo_doador_originario 125082 non-null object
dtypes: float64(1), object(14)
memory usage: 15.3+ MB
“cpf_cnpj_doador”列的代码为字符串格式,始终为 11 位数字。例如:
'18286585291', '31601928220' and '06796478134'
我需要创建一个包含相同“cpf_cnpj_doador”内容的新列,但将前三位数字替换为 *,将最后两位数字替换为 *。示例:
'***865852**', '***019282**' and '***964781**'
请问有人知道我该怎么做吗?
最佳答案
你可以使用
df['new']='***'+df['cpf_cnpj_doador'].str[3:9]+'**'
关于python - 在 Pandas 中如何替换列中的某些项目?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53342196/