【问题标题】:How to convert a float column to datetime with only year and month in Python?如何在 Python 中将浮点列转换为只有年和月的日期时间?
【发布时间】:2019-03-19 14:22:47
【问题描述】:

我有一个这样的日期列,

    DATE   CÓDIGO  ...          UNIDADE  VALOR
0  2009.06  10000.0  ...              NaN    NaN
1  2009.06  10100.0  ...    NÃO SE APLICA      .
2  2009.06  10101.0  ...               M2   0.46
3  2009.06  10102.0  ...               UN  15.15

我想将其转换为日期格式%Y%m

应用代码,

df['DATA'] = pd.to_datetime(df['DATA'], format='%Y.%m')

我明白了,

0   1970-01-01 00:00:00.000002009
1   1970-01-01 00:00:00.000002009
2   1970-01-01 00:00:00.000002009
3   1970-01-01 00:00:00.000002009
4   1970-01-01 00:00:00.000002009
Name: DATA, dtype: datetime64[ns]

感谢您的帮助!

【问题讨论】:

    标签: python pandas to-date


    【解决方案1】:

    先转换成字符串:

    df['DATA'] = pd.to_datetime(df['DATA'].map('{:.2f}'.format), format='%Y.%m')
    

    事实上,pd.to_datetime 认为浮点值是自 1970 年以来的毫秒数。

    【讨论】:

      【解决方案2】:

      添加astype(str)

      pd.to_datetime(df['DATE'].astype(str), format='%Y.%m')
      Out[710]: 
      0   2009-06-01
      1   2009-06-01
      2   2009-06-01
      3   2009-06-01
      Name: DATE, dtype: datetime64[ns]
      

      【讨论】:

      • 我想过,但我认为控制字符串转换的格式更安全:)
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-02-26
      • 2021-09-26
      • 1970-01-01
      • 1970-01-01
      • 2018-06-23
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多