将数据框列类型从 int 更改为字符串 [重复]

Posted

技术标签:

【中文标题】将数据框列类型从 int 更改为字符串 [重复]【英文标题】:Change data-frame column type to string from int [duplicate] 【发布时间】:2019-04-08 00:52:37 【问题描述】:

我有一个数据框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

YEARMONTHDAY 列取自 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】:

使用.astype(str)

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

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

【讨论】:

以上是关于将数据框列类型从 int 更改为字符串 [重复]的主要内容,如果未能解决你的问题,请参考以下文章

将数据类型从int更改为time会导致现有值出错

将带有数字的列的类型从 varchar 更改为 int

ASP.NET Identity - 将用户 ID 主键默认类型从字符串更改为 int 以及使用自定义表名时出错

将 Int 更改为字符串然后格式化字符串 [重复]

Spring Boot - RabbitMQ - 将消息内容类型从八位字节流更改为 json

将数据框列转换为字符串列表[重复]