【问题标题】:Replace Month name with month number将月份名称替换为月份编号
【发布时间】:2019-12-26 04:09:48
【问题描述】:

我有一个名为“日期”的列,其对象数据类型(熊猫)如下:

Apr-12
Apr-12
Mar-12
Apr-12
Apr-12

名称:日期,数据类型:对象

我想用相同的格式替换此列,如下格式

04/12
04/12
03/12
04/12
04/12

名称:日期,数据类型:对象

【问题讨论】:

  • 您可以发布代码以生成该类型的数据框吗?
  • 我没有生成数据框,我只是将我的 csv 导入到 pandas 中,它就像这样
  • 好的。我写了一个答案。看看这是否适合你

标签: pandas datetime replace


【解决方案1】:

你可以试试这个,但我不确定这是否可行。让我知道错误,并请邮政编码以生成此类数据框。

from datetime import datetime
df['month'] = df['date'].apply(lambda x: pd.Timestamp(datetime.strptime(x,'%b-%d')).month)

编辑: 我检查了这个并且它有效。同样,你可以做一年,然后得到你想要的格式

编辑2: 我通过创建一个演示数据框运行了以下代码,它可以工作。您可以尝试打印月份 col

from datetime import datetime
df = pd.DataFrame(data={'date':['Apr-12','Mar-13']})
df['month'] = df['date'].apply(lambda x: pd.Timestamp(datetime.strptime(x,'%b-%d')).month)

【讨论】:

  • AttributeError: 'str' 对象没有属性 'TimeStamp'
  • 不工作的兄弟显示以下错误:AttributeError: 'str' object has no attribute 'TimeStamp'
  • 请检查我的编辑。我将其转换为 datetime 对象,然后转换为时间戳以获取月份
【解决方案2】:

您可以通过to_datetime查看

pd.to_datetime(df.date,format='%b-%d').dt.strftime('%m/%d')
Out[405]: 
0    04/12
1    03/12
2    04/12
3    04/12
Name: date, dtype: object
#df.date = pd.to_datetime(df.date,format='%b-%d').dt.strftime('%m/%d')

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-10-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-02-19
    • 1970-01-01
    相关资源
    最近更新 更多