首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >分配pandas数据帧NULL=0,非NULL=0值=1

问分配pandas数据帧NULL=0,非NULL=0值=1
EN

Stack Overflow用户
提问于 2018-08-12 05:16:37
回答 1查看 242关注 0票数 1

在python 3.6和pandas 0.19.0中

有一列"date“

代码语言:javascript
复制
date
2018-01-01
2018-01-02
2018-01-03

2018-01-05

我正在尝试将其转换为NULL=0,非NULL=0值=1

代码语言:javascript
复制
date
1
1
1
0
1

第一步是将null转换为0,这很简单

代码语言:javascript
复制
df['date'] = df['date'].fillna(value=0)

这给了我:

代码语言:javascript
复制
date
2018-01-01
2018-01-02
2018-01-03
0
2018-01-05

但是,我在将非零值转换为1的过程中遇到了一些麻烦,这里pandas.set_values似乎不是一个好的选择。

代码语言:javascript
复制
df['date']=df[(df.date != 0)] == "1"

上面的错误消息似乎不能很好地工作:

代码语言:javascript
复制
TypeError: Could not compare ['1'] with block values

有什么想法吗?谢谢!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-08-12 05:19:01

IIUC

代码语言:javascript
复制
pd.to_datetime(df.date,errors='coerce').isnull().astype(int)
Out[862]: 
0    0
1    0
2    0
3    1
4    0
Name: date, dtype: int32

或df.date.isnull().astype(int) (如果空白已经是NaN )

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51803815

复制
相关文章

相似问题

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