Python Pandas:将日期转换为文本,例如2018-08->八月

时间:2018-11-04 23:53:38

标签: python pandas

请原谅我,如果它的格式不正确,这是我的第一篇文章。

我正在将Python与Pandas一起使用,并且我有一列名为“ Month”的列,其下面的值显然是2018年8月的“ 2018-08”。我正在尝试将“ 2018-08”值更改为“八月”或“八月”。

到目前为止,我尝试过的是:

df = df.rename(index = {“ 2018-08”:“ Aug”})

还尝试使用“”代替“”,以免有所作为。

我运行了df.dtypes,并且发现“ Month”列是对象,如果这有所不同。

有人可以帮忙将数值转换为字符串吗?

如果这看起来一团糟,再次道歉!

致谢

2 个答案:

答案 0 :(得分:1)

您可以像这样使用datetime例程:

datetime.datetime.strptime('2018-08', "%Y-%m").strftime('%b') # 'Aug'

datetime.datetime.strptime('2018-08', "%Y-%m").strftime('%B') # 'August'

答案 1 :(得分:0)

您可以使用:

df = pd.DataFrame({'Month': ['2018-09', '2000-10', '2003-01', '3098-12']})
month_conversion = {'01': 'Jan', '02': 'Feb', '03': 'Mar', '04': 'Apr', 
                    '05': 'May', '06': 'Jun', '07': 'Jul', '08': 'Aug',
                    '09': 'Sep', '10': 'Oct', '11': 'Nov', '12': 'Dec'}
df['long_month'] = df['Month'].str.split('-').str[1].map(month_conversion)

df
     Month long_month
0  2018-09        Sep
1  2000-10        Oct
2  2003-01        Jan
3  3098-12        Dec