【问题标题】:How to modifiy a specific caracter from DataFrame date in Python如何在 Python 中从 DataFrame 日期修改特定字符
【发布时间】:2021-02-06 22:34:56
【问题描述】:

这是一个脚本:

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”的值。 也许你可以帮忙。谢谢

【问题讨论】:

    标签: python-3.x pandas dataframe datetime


    【解决方案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'])
    

    在下面的 cmets 之后,您表示您希望对具有不同前缀的多个值执行此操作。请尝试:

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

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

    【讨论】:

    • 谢谢,如果我有多个元素。示例:'1871-1' '1898-1' 等等
    • 请尝试tab['date']=np.where(tab.date.str.contains('-1$'),tab['date']+'1',tab['date'])
    • 这有帮助吗?
    猜你喜欢
    • 2023-02-15
    • 2018-07-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-01-20
    • 2022-01-24
    • 1970-01-01
    • 2016-07-03
    相关资源
    最近更新 更多