Python更改字符串的int值

2024-10-02 18:13:58 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个关于np的问题

我有这样的想法:

import pandas as pd
import numpy as np
a = [{'a1':'Marco 1'}, {'a1':'2'}, {'a1':'Marco 3'}]
df = pd.DataFrame(a)

df['a1'] = np.where(df['a1'].str.contains('Marco'), 'Marco', df['a1'])

我想知道如何改变a1==2中的值,对于像'Marco2'这样的字符串


Tags: 字符串importnumpydataframepandasdfa1as
2条回答

通过np.where()尝试:

df['a1']=np.where(df['a1'].str.isnumeric(),'Marco '+df['a1'],df['a1'])

通过带loc访问器的布尔屏蔽:

df.loc[df['a1'].str.isnumeric(),'a1']='Macro '+df.loc[df['a1'].str.isnumeric(),'a1']

注意:您也可以使用str.isdigit()方法代替str.isnumeric()方法

你可以试试str.split

df['a1'] = 'Marco ' + df['a1'].str.split(r'Marco').str[-1]
df['a1']

# 0    Marco   1
# 1     Marco  2
# 2    Marco   3
# Name: a1, dtype: object

str.replace

df['a1'] = df['a1'].str.replace(r'(Marco)*\s*(\d+)', r'Marco \2')
df['a1']

# 0    Marco 1
# 1     Marco 2
# 2     Marco 3
# Name: a1, dtype: object

相关问题 更多 >