根据特定条件更改pandas列中的第一个出现项



所以我想把数字列中的第一个数字改为+233,假设第一个数字是0,基本上我想让数字中的所有行都像行保罗一样两个列都是字符串对象。

的期望:仅当=="0"

时,df["numbers"]列中值的第一个字符应替换为"+233"
df = pd.DataFrame([[ken, 080222333222], 
[ben, +233948433], 
[Paul, 0800000073]], 
columns=['name', 'number'])`

希望我理解你的版本,试试这个:注意-我删除了第一个0并将其替换为+233

import pandas as pd
df = pd.DataFrame([["ken", "080222333222"], ["ben", "+233948433"], ["Paul", "0800000073"]], columns=['name', 'number'])

def convert_number(row):
if row[0] == '0':
row = "+233" + row[1:]
return row
df['number'] = df['number'].apply(convert_number)
print(df)

可以直接使用replace

df['relace_Col']=df.number.str.replace(r'^d', '+233',1)

制作

name        number       relace_Col
0   ken  080222333222  +23380222333222
1   ben    +233948433       +233948433
2  Paul    0800000073    +233800000073

复制上述

的完整代码
import pandas as pd
df = pd.DataFrame([['ken', '080222333222'], ['ben', '+233948433'],
['Paul', '0800000073']], columns=['name', 'number'])

df['relace_Col']=df.number.str.replace(r'^d', '+233',1)
print(df)

最新更新