首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在熊猫蟒蛇中将布尔输出转换为字符串

在熊猫蟒蛇中将布尔输出转换为字符串
EN

Stack Overflow用户
提问于 2018-04-19 13:36:16
回答 2查看 136关注 0票数 1

当比较两个数据文件并将结果放回数据文件时:

代码语言:javascript
复制
dfA = pd.DataFrame({'Column':[1,2,3,4]})

或以人类可读的形式:

代码语言:javascript
复制
    Column
0   1
1   2
2   3
3   4

dfB = pd.DataFrame({'Column':[1,2,4,3]})

或以人类可读的形式:

代码语言:javascript
复制
    Column
0   1
1   2
2   4
3   3

pd.DataFrame(dfA > dfB)

熊猫输出数据的真值或假值。

代码语言:javascript
复制
    Column
0   False
1   False
2   False
3   True

是否可以将名称从“真”或“假”改为“低”或“更高”?我想知道结果是高的、低的还是相等的,这就是我为什么要问。如果输出不高或低(真或假),则必须相等。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2018-04-19 13:43:07

为了性能/简单性,我建议使用np.where

代码语言:javascript
复制
pd.DataFrame(np.where(dfA > dfB, 'higher', 'lower'), columns=['col'])

      col
0   lower
1   lower
2   lower
3  higher

如果需要,还可以使用np.where嵌套条件,

代码语言:javascript
复制
m1 = dfA > dfB
m2 = dfA < dfB  
pd.DataFrame(
    np.where(m1, 'higher', np.where(m2, 'lower', 'equal')),
    columns=['col']
)

或者,使用np.select遵循一种稍微不同的方法。

代码语言:javascript
复制
pd.DataFrame(
    np.select([m1, m2], ['higher', 'lower'], default='equal'),
    columns=['col']
)

代码语言:javascript
复制
      col
0   equal
1   equal
2   lower
3  higher
票数 1
EN

Stack Overflow用户

发布于 2018-04-19 13:40:07

您可以使用map

代码语言:javascript
复制
In [10]: pd.DataFrame(dfA > dfB)['Column'].map({True: 'higher', False: 'lower'})
Out[10]:
0     lower
1     lower
2     lower
3    higher
Name: Column, dtype: object
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/49922506

复制
相关文章

相似问题

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