python - 将数据框列类型从 int 更改为字符串
问题描述
我有一个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
. 我正在尝试将 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')
解决方案
利用.astype(str)
df['YEAR'] = df['YEAR'].astype(str)
type(df.YEAR[0])
Out[11]: str
推荐阅读
- c# - 如何使用其他方法在方法中运行 ProgressBar
- android-studio - 无法从一项活动转移到另一项活动
- azure-devops - 通过 poweshell 脚本 Azure devops 自动完成 PR
- linux - Linux Perl - 将十六进制值转换为十进制
- c# - 在使用“as”强制转换对象之前是否需要进行 C# 空检查?
- django - Django - 如何在 CharField / IntegerField 上应用 onlivechange
- javascript - JavaScript 中的“事件循环”和“事件队列”是否相同?
- javascript - 继续按钮仍会禁用 Google Pay 集成
- google-cloud-platform - 如何从快照 api 响应中检索计算引擎名称?
- csv - 在 Jmeter 中为 2 个 HTTP 请求运行 2 个 CSV 文件