首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用numpy根据条件填充列中的值?

如何使用numpy根据条件填充列中的值?
EN

Stack Overflow用户
提问于 2020-06-26 19:11:31
回答 1查看 79关注 0票数 0

嗨,我正在尝试用固定值填充新列,如果满足条件的话。但如果条件不满足,我也会得到值。(对于某些行)我哪里错了?如果“id”为空,则“type”中需要留空,否则列“id1”的字符串“A2A”数据类型为object。当我把它转换成字符串时,它给出了错误。尽管我们在“ID1”中看到了空行。它显示错误“无法对浮点数执行操作”

代码:

代码语言:javascript
复制
df1['type'] = np.where((df1['ID1'].isnull()) , np.nan,'A2A')

输入:

代码语言:javascript
复制
ID1



2
3


4

输出:

代码语言:javascript
复制
ID1 type
    nan
    A2A
    A2A
2   A2A
3   A2A
    nan
    nan
4   A2A
    A2A

预期输出:

代码语言:javascript
复制
ID1 type
    
    
    
2   A2A
3   A2A
    
    
4   A2A
EN

回答 1

Stack Overflow用户

发布于 2020-06-26 19:17:01

您可以尝试这样做:

确保将多个空格删除为仅为空

代码语言:javascript
复制
df = pd.DataFrame([None, np.nan, '','','',2,3,'',''])

df = df.replace(r'^\s*$', '', regex=True)
df.fillna('', inplace=True)

选项1:您可以使用pandas .apply

代码语言:javascript
复制
df["type"] = df.apply(lambda x: "A2A" if x[0] else '',axis=1)

选项2:无轴:

代码语言:javascript
复制
df["type"] = df[0].apply(lambda x: "A2A" if x else '')

选项3:您也可以使用 np.where**:**

代码语言:javascript
复制
df["type"] = np.where(df[0], "A2A", '')

选项4:将整个列转换为字符串格式并检查值

代码语言:javascript
复制
df[0].apply(lambda x: "A2A" if str(x).lower().strip() not in ["none","nan",""] else '')

输入:

代码语言:javascript
复制
    0
0   None
1   NaN
2   
3   
4   
5   2
6   3
7   
8   

输出:

代码语言:javascript
复制
    0   type
0       
1       
2       
3       
4       
5   2   A2A
6   3   A2A
7       
8       
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/62593523

复制
相关文章

相似问题

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