首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >csv_read:将日期转换为整型/布尔型

csv_read:将日期转换为整型/布尔型
EN

Stack Overflow用户
提问于 2021-06-15 11:28:46
回答 2查看 50关注 0票数 1

我有一个csv文件,它有一个列"graduated“,它要么显示毕业日期,要么显示0(如果还没有毕业)。

df.dtypes返回'object‘对于此列,我希望将所有日期转换为'1’(表示该列中的人已毕业)。我该怎么做呢?

EN

回答 2

Stack Overflow用户

发布于 2021-06-15 11:46:02

您可以检查df.graduated是否不等于'0'。要保留nan,请仅为notnull格式的行编制索引

代码语言:javascript
复制
notnull = df.graduated.notnull()
df.loc[notnull, 'graduated'] = df.loc[notnull, 'graduated'].ne('0').astype(int)

玩具示例:

代码语言:javascript
复制
df = pd.DataFrame({'graduated': ['2020-12-30',  '0', '2021-05-30', np.nan]})

#     graduated
# 0  2020-12-30
# 1           0
# 2  2021-05-30
# 3         NaN
代码语言:javascript
复制
notnull = df.graduated.notnull()
df.loc[notnull, 'graduated'] = df.loc[notnull, 'graduated'].ne('0').astype(int)

#   graduated
# 0         1
# 1         0
# 2         1
# 3       NaN
票数 0
EN

Stack Overflow用户

发布于 2021-06-15 12:10:36

使用pandas.to_datetime转换日期并转换为布尔系列。然后,将其强制转换为int以获得所需的结果。

代码语言:javascript
复制
pd.to_datetime(df.graduated, errors='coerce').notnull().astype(int)
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/67979616

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档