【问题标题】:Pandas replace months names within dataframe values熊猫替换数据框值中的月份名称
【发布时间】:2016-05-09 11:30:43
【问题描述】:

我有数据集,其中月份类似于“一月”、“二月”等。 例如“2016 年 4 月 25 日 23:12”

目标是对整个数据框使用 .replace() 将其转换为 '23:12 25 4 2016'。

有什么想法吗? 谢谢。

UDP。忘记了主要问题:这个例子有几个月的英文,最初我有其他语言,所以我需要先将 unicode 替换为to_datetime

【问题讨论】:

    标签: python pandas replace


    【解决方案1】:

    IIUC 你可以使用to_datetimedate 列中重新格式化dates

    print df
                      date
    0  23:12 25 April 2016
    
    df['date'] = pd.to_datetime(df['date'])
    print df
    
                     date
    0 2016-04-25 23:12:00
    

    另一种解决方案是添加参数format

    df['date'] = pd.to_datetime(df['date'], format="%H:%M %d %B %Y")
    print df
                     date
    0 2016-04-25 23:12:00
    

    如果months 的名称是俄语,则使用replace

    import pandas as pd
    
    df = pd.DataFrame({'date': [u'23:12 25 январь 2016']})
    
    d = {u'январь':'January', u'февраль':'February', u'март':'March'}
    
    df['date'] = df['date'].replace(d, regex=True)
    
    df['date'] = pd.to_datetime(df['date'], format="%H:%M %d %B %Y")
    print df
                     date
    0 2016-01-25 23:12:00
    

    【讨论】:

    • 谢谢,但最大的问题是月份是unicode(其他语言),所以to_datetime之前需要替换
    • 什么语言?
    • 俄罗斯月份“Января”、“Февраля”等
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-02-02
    • 2018-09-29
    • 2022-06-24
    • 2022-01-11
    • 1970-01-01
    • 2016-10-27
    相关资源
    最近更新 更多