- 主题:请问这个错误究竟怎么回事, 实在搞不清楚了
ValueError: The truth value of a Series is ambiguous. Use a.empty, a.bool(),
a.item(), a.any() or a.all().
语句只是
dl['3'] = 1 if dl['1'] > dl['2'] else 0
第一列和第二列 都是float64位
查了半天,不知道啥原因
--
FROM 183.165.104.*
意思是 d['1'] > d['2'] 的结果是一个bool数组,不是一个bool值
【 在 futurehost 的大作中提到: 】
: ValueError: The truth value of a Series is ambiguous. Use a.empty, a.bool(),
: a.item(), a.any() or a.all().
: 语句只是
: ...................
--
FROM 183.192.18.*
贴个dl的结构内容吧。这句话本身没有语法错误
【 在 futurehost (No life, no wife, dog's life) 的大作中提到: 】
: 发信人: futurehost (No life, no wife, dog's life), 信区: Python
: 标 题: 请问这个错误究竟怎么回事, 实在搞不清楚了
: 发信站: 水木社区 (Sat Jul 30 13:18:07 2022), 转信
:
--
FROM 120.245.94.*
没错误不代表能跑通啊,所以才是ValueError
【 在 Scolesath 的大作中提到: 】
: 贴个dl的结构内容吧。这句话本身没有语法错误
--
FROM 61.149.75.98
所以才要看数据结构啊
【 在 annals (miss) 的大作中提到: 】
: 没错误不代表能跑通啊,所以才是ValueError
:
: 【 在 Scolesath 的大作中提到: 】
: : 贴个dl的结构内容吧。这句话本身没有语法错误
--
FROM 120.245.94.*
那个明显是pandas.dataframe呀
【 在 Scolesath 的大作中提到: 】
: 所以才要看数据结构啊
--
FROM 61.149.75.98
、
想错了, 感觉是 dl这个dataframe 需要一个数组,但我返回的一个数
然后我用这样表达式,就可以通过,只不过这一列是true和false,不是0和1
dl['3'] = dl['1'] > dl['2']
然后我只好再做一次变换,把false换成0, true换成1。
dl['3']应该期待的是一个数组, dl['']类型表达式,返回的都是一个数组,而不是我
理解的,这只是一个迭代的简化写法。
三元表达式没问题
有办法把这个三元表达式返回的,是一个dl['']类型的数组表达式吗?
或者有什么简单的表达式,可以把dl['1'] > dl['2'] 返回的true/false数组转为1/0数组?
【 在 RunningOn 的大作中提到: 】
: 标 题: Re: 请问这个错误究竟怎么回事, 实在搞不清楚了
: 发信站: 水木社区 (Sat Jul 30 13:23:02 2022), 转信
:
: 意思是 d['1'] > d['2'] 的结果是一个bool数组,不是一个bool值
:
: 【 在 futurehost 的大作中提到: 】
: : ValueError: The truth value of a Series is ambiguous. Use a.empty, a.bool(),
: : a.item(), a.any() or a.all().
: : 语句只是
: : ...................
:
: --
:
: ※ 来源:·水木社区 mysmth.net·[FROM: 183.192.18.*]
--
修改:futurehost FROM 183.165.104.*
FROM 183.165.104.*
dl['3'] = (dl['1'] > dl['2']).astype(int)
【 在 futurehost 的大作中提到: 】
: 、
: 想错了, 感觉是 dl这个dataframe 需要一个数组,但我返回的一个数
: 然后我用这样表达式,就可以通过,只不过这一列是true和false,不是0和1
: ...................
--
FROM 183.192.18.*
多谢
这应该是最简单的写法了
【 在 RunningOn 的大作中提到: 】
: 标 题: Re: 请问这个错误究竟怎么回事, 实在搞不清楚了
: 发信站: 水木社区 (Sun Jul 31 10:22:11 2022), 转信
:
: dl['3'] = (dl['1'] > dl['2']).astype(int)
:
: 【 在 futurehost 的大作中提到: 】
: : 、
: : 想错了, 感觉是 dl这个dataframe 需要一个数组,但我返回的一个数
: : 然后我用这样表达式,就可以通过,只不过这一列是true和false,不是0和1
: : ...................
:
: --
:
: ※ 来源:·水木社区 mysmth.net·[FROM: 183.192.18.*]
--
FROM 183.165.104.*
pandas本身好像对三元表达式不支持,可以用numpy的where替代:
dl['xxx'] = np.where(条件, 1, 0)
另外,编程问题查stackoverflow啊,基本没有查不到的,查不到多半也是因为英文不过关;)
【 在 futurehost 的大作中提到: 】
: 、
: 想错了, 感觉是 dl这个dataframe 需要一个数组,但我返回的一个数
:
: ...................
--
FROM 61.157.0.*