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')