我对Python还不熟悉。我有一种感觉,有一个快速解决,但没有什么似乎很快对我来说
我有一个150000多行的数据帧,data
。其中有两个系列:gridcode
和CH4_Flux
。我想创建一个新的分类列,名为category
,它根据以下四个条件为每一行分配一个分类标识符:
cat1 = data[(data.gridcode <= threshAV) & (data.CH4_Flux >= threshAM)]
cat2 = data[(data.gridcode >= threshAV) & (data.CH4_Flux >= threshAM)]
cat3 = data[(data.gridcode <= threshAV) & (data.CH4_Flux <= threshAM)]
cat4 = data[(data.gridcode >= threshAV) & (data.CH4_Flux <= threshAM)]
其中threshAV
是gridcode
的预定阈值,threshAM
是CH4_Flux
的预定阈值。本质上要么两者都超过阈值,要么两者都不超过,要么一个或另一个超过。优选地,分类标签将仅仅是分别遵循上述cat1
、cat2
、cat3
和cat4
的逻辑的整数1、2、3和4
我试过for
循环和if
和where
语句,但都被删掉了
在试验for
循环时,我通常会遇到以下错误:
ValueError: The truth value of a Series is ambiguous. Use a.empty, a.bool(), a.item(), a.any() or a.all().
提前感谢您的任何建议或指导
通过多个布尔掩码对新列使用^{} :
或:
相关问题 更多 >
编程相关推荐