我试图生成一个变量,它的值取决于另一个变量的值。我的数据集是urban_classification
,我正在尝试基于变量prc_urbain
的值创建变量URBRUR
。这是我的密码:
if urban_classification.prc_urbain>0.5 :
urban_classification['URBRUR'] = "urban"
else:
urban_classification['URBRUR'] = "rural"
我得到一条错误信息:
Traceback (most recent call last):
File "C:\Users\Utilisateur\AppData\Roaming\Python\Python37\site-packages\IPython\core\interactiveshell.py", line 3326, in run_code
exec(code_obj, self.user_global_ns, self.user_ns)
File "<ipython-input-3-a94aadb86c32>", line 31, in <module>
if urban_classification.prc_urbain>0.5 :
File "C:\Users\Utilisateur\AppData\Local\Programs\Python\Python37\lib\site-packages\pandas\core\generic.py", line 1555, in __nonzero__
self.__class__.__name__
ValueError: The truth value of a Series is ambiguous. Use a.empty, a.bool(), a.item(), a.any() or a.all().
你能指出我做错了什么吗
谢谢
错误消息:
来自
因为
urban_classification.prc_urbain
是一个pd.Series,因此urban_classification.prc_urbain>0.5
也是一个由真/假值组成的pd.Series,python无法确定这个布尔值列表的值是否应该为真要实现您想要的,您可以使用pd.cut:
示例:
变量
urban_classification.prc_urbain
不是可以直接与0.5
比较的数字,而是pandas.Series
对象(基本上是一维数组)您看到的错误要求您更加具体:是否希望数组中的所有值都是
>0.5
,其中任何一个值都是特定的,等等如果您认为数组只由一个元素组成,则只需将
[0]
附加到Series对象,例如:相关问题 更多 >
编程相关推荐