Python 3.x 如何在Python中修改数据帧日期中的特定字符

Python 3.x 如何在Python中修改数据帧日期中的特定字符,python-3.x,pandas,dataframe,datetime,Python 3.x,Pandas,Dataframe,Datetime,下面是一个脚本: date = ['1871-01', '1871-02', '1871-1', '1871-11', '1871-12'] div = np.zeros(len(date)) tab = pd.DataFrame({'date':date, 'zeros':div}) tab 我想直接在表中更改,而不是从列表日期开始更改“1871-11”中“1871-1”的值。 也许你能帮忙。谢谢使用口罩 tab['date']=tab['date'].mask(tab['date'].e

下面是一个脚本:

date = ['1871-01', '1871-02', '1871-1', '1871-11', '1871-12']
div = np.zeros(len(date))

tab = pd.DataFrame({'date':date, 'zeros':div})
tab
我想直接在表中更改,而不是从列表日期开始更改“1871-11”中“1871-1”的值。 也许你能帮忙。谢谢

使用口罩

tab['date']=tab['date'].mask(tab['date'].eq('1871-1'),'1871-11')

     date  zeros
0  1871-01    0.0
1  1871-02    0.0
2  1871-11    0.0
3  1871-11    0.0
4  1871-12    0.0
或者,使用np.where

tab['date']=np.where(tab['date'].eq('1871-1'),'1871-11',tab['date'])
在下面的注释中,您指出希望对具有不同预修复的多个值执行此操作。请尝试:

tab['date']=np.where(tab.date.str.contains('-1$'),tab['date']+'1',tab['date'])


谢谢,如果我有多重元素。例如:“1871-1”“1898-1”,等等。请尝试
tab['date']=np。其中(tab.date.str.contains('-1$)、tab['date']+'1',tab['date'])
这有帮助吗?
tab['date']=tab['date'].mask(tab.date.str.contains('-1$'),tab['date']+'1')