python – 使用Pandas在条件上乘以两个数字列
发布时间:2020-12-20 12:13:27 所属栏目:Python 来源:网络整理
导读:我有pd数据帧(数据),有三列,X,Y和Z. 我需要运行以下内容: X * Y其中Z =’值’ 我正在努力: data[data['Z'] == 'value',[data['X']*data['Y']]] 现在我知道这不正确,但我能闻到正确的答案.有人能指出我正确的方向吗? 解决方法 IIUC: (df.X * df.Y).where(
我有pd数据帧(数据),有三列,X,Y和Z.
我需要运行以下内容: X * Y其中Z =’值’ 我正在努力: data[data['Z'] == 'value',[data['X']*data['Y']]] 现在我知道这不正确,但我能闻到正确的答案.有人能指出我正确的方向吗? 解决方法
IIUC:
(df.X * df.Y).where(df.Z == 'Value') 要么 df[df.Z == 'Value'].eval('X * Y') 例子: np.random.seed(123) df = pd.DataFrame({'X':np.arange(10),'Y':np.arange(10),'Z':np.random.choice(['Value',np.nan],10)}) (df.X * df.Y).where(df.Z == 'Value') 0 0.0 1 NaN 2 4.0 3 9.0 4 16.0 5 25.0 6 36.0 7 NaN 8 NaN 9 81.0 dtype: float64 要么 df[df.Z == 'Value'].eval('X * Y') 0 0 2 4 3 9 4 16 5 25 6 36 9 81 dtype: int32 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |