将数据框列类型从int更改为字符串

时间:2018-11-04 13:18:39

标签: python pandas

我有一个数据帧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列,MONTHDAY列是使用以下方法从DATE列中提取的:

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

当前,它们的类型为int64。我正在尝试将YEAR,MONTH,DAY列的类型更改为字符串。我尝试使用:

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 个答案:

答案 0 :(得分:1)

使用.astype(str)

df['YEAR'] = df['YEAR'].astype(str)

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