要使上面列出的一些方法正式化:
创建一个对数据框的行进行 *** 作的函数,如下所示:
def f(row): if row['A'] == row['B']: val = 0 elif row['A'] > row['B']: val = 1 else: val = -1 return val
然后通过
axis=1选项将其应用于您的数据框:
In [1]: df['C'] = df.apply(f, axis=1)In [2]: dfOut[2]: A B Ca 2 2 0b 3 1 1c 1 3 -1
当然,这不是矢量化的,因此在缩放到大量记录时,性能可能会不佳。不过,我认为它更具可读性。特别是来自SAS背景。
编辑
这是向量化版本
df['C'] = np.where( df['A'] == df['B'], 0, np.where( df['A'] > df['B'], 1, -1))
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)