代码之家  ›  专栏  ›  技术社区  ›  Stacey

将数据帧列类型从int[duplicate]更改为string

  •  -1
  • Stacey  · 技术社区  · 6 年前

    df 头部看起来像:

            DATE    YEAR  MONTH  DAY
    0 2014-03-04    2014      3    4
    1 2014-04-04    2014      4    4
    2 2014-04-07    2014      4    7
    3 2014-04-08    2014      4    8
    4 2014-04-09    2014      4    9
    

    YEAR , MONTH , DAY 从哪里带走的 DATE 列使用:

    df['YEAR'] = df.DATE.dt.year
    df['MONTH'] = df.DATE.dt.month
    df['DAY'] = df.DATE.dt.day
    

    目前他们的类型是 int64 . 我正在尝试更改要字符串的年、月、日列的类型。我尝试使用:

    df['YEAR'] = df.DATE.dt.year + ""
    df['MONTH'] = df.DATE.dt.month + ""
    df['DAY'] = df.DATE.dt.day + ""
    

    df['YEAR'].apply(str)
    df['MONTH'].apply(str)
    df['DAY'].apply(str)
    

    我一直得到类型错误:

    TypeError: ufunc 'add' did not contain a loop with signature matching types dtype('<U21') dtype('<U21') dtype('<U21') 
    
    1 回复  |  直到 4 年前
        1
  •  1
  •   nimrodz    6 年前

    使用 .astype(str)

    df['YEAR'] = df['YEAR'].astype(str)
    
    type(df.YEAR[0])
    Out[11]: str