当前位置: 首页 > 知识库问答 >
问题:

如果添加列,请注意序列的真值不明确

督飞鸣
2023-03-14

我想在dataframe a中添加一列,

a = pd.DataFrame([[1,2],[3,4]],columns=['A','B'])
if a['B'] > a['A']:
    a['C']='是'
else:
    a['C']='否'

ValueError:序列的真值不明确。使用a.empty、a.bool()、a.item()、a.any()或a.all()。

共有3个答案

百里朝
2023-03-14

还有一个选择是

np.choose()

它是在

np.choose('是','否')
充星腾
2023-03-14

是,其中或numpy。选择:

a = pd.DataFrame([[2,1],[3,4]],columns=['A','B'])
a['C'] = np.select([a['B']>a['A']], '是', default = '否')
print(a)

返回:

   A  B  C
0  2  1  否
1  3  4  是

它很容易扩展到更多的条件:

a = pd.DataFrame([[2,1],[3,4],[1,10]],columns=['A','B'])

condlist = [
    a['B'] > 5*a['A'],
    a['B'] > a['A']
]
valuelist = ['是', '否']

a['C'] = np.select(condlist, valuelist, default=np.nan)
print(a)

返回:

   A   B    C
0  2   1   nan
1  3   4    否
2  1  10    是
濮丁雷
2023-03-14

使用numpy.where

#swapped 2,1
a = pd.DataFrame([[2,1],[3,4]],columns=['A','B'])
a['C'] = np.where(a['B']>a['A'], '是','否')
print (a)
   A  B  C
0  2  1  否
1  3  4  是

代码的问题在于是否使用:

print (a['B']>a['A'])
0    False
1     True
dtype: bool

如果无法决定要做什么,则返回布尔掩码和

还可以使用熊猫的if真理陈述进行检查。

 类似资料:
  • 问题内容: 我看了很多例子。但是此查询不起作用,出现以下错误: 错误1064(42000):您的SQL语法有错误;在第1行的’IF NOT EXISTS(SELECT * FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME =’)附近,查看与您的MySQL服务器版本相对应的手册以使用正确的语法。 问题答案: 您可以为查询创建一个过程,

  • 问题内容: 有谁知道如何通过运行脚本向SQL Server列添加描述?我知道使用SQL Server Management Studio创建列时可以添加描述。 我该如何编写脚本,以便当我的SQL脚本创建该列时,还添加了对该列的描述? 问题答案: 我会说您可能想使用sp_addextendedproperty存储的proc来做到这一点。 Microsoft有一些很好的文档。 试试这个:

  • 我正在使用pandas数据框,并尝试选择和所在的行。列是int类型,而是一个对象。下面是我使用的表达式: 但我一直在犯错误: 我是初学者,甚至不知道如何表达我的问题。我看过其他关于堆栈溢出的答案,但它们对我来说没有意义。这个错误是什么意思?我应该知道哪些潜在的概念才能自己理解它?我该如何解决这个问题?

  • 问题内容: 我正在使用SQL Server 2005/2008。我需要向表中添加一列(如果尚不存在)。这将应用于给定数据库中的所有表。我希望我能早一点,但与此解决方案有关。 如何才能做到这一点? 这是我所拥有的: 但是我得到了错误: 错误102:“ @ tblname”附近的语法不正确。’CreatedOn’附近的语法不正确。“ @tblname”附近的语法不正确。’CreatedOn’附近的语法

  • 问题内容: 我知道以前曾有人问过这个问题,但是当我尝试发表声明时却遇到错误。我查看了此链接,但对我而言并没有太大帮助。我是DataFrames的列表。 我正在尝试以下, 给出以下错误: ValueError:系列的真值不明确。使用a.empty,a.bool(),a.item(),a.any()或a.all()。 和 我尝试以下,并得到同样的错误。 我的数据类型是。我没有使用任何其他运算符和或。在

  • 问题很简单。如何将列添加到表中,但仅当列不存在时?我在这里只找到了如何检查列是否存在的解决方案。