在数据框中的多个列上执行计算并创建新列

时间:2018-12-09 22:27:55

标签: pandas dataframe concatenation

我正在尝试根据pandas数据框中的条目执行计算。数据框看起来像这样: enter image description here 它包含1466行。以后,我将不得不在其他df上运行更多行的类似计算。

我想做的是计算类似mag = '(U-V)/('R-I)'的内容(但忽略任何-999的值),将其放在新列中,然后{{1} } = {z_pred在新列中(10**((mag-c)m)magc只是硬编码的变量)。我也需要添加其他列,但我认为这只是同一方法的扩展。

我从尝试开始

m

但是我遇到了无法操作的for i in range(1): current = qso[:] mag = (U-V)/(R-I) name = current['NED'] z_pred = 10**((mag - c)/m) z_meas = current['z'] 系列,或者在尝试打印值或将它们写入文件时遇到各种类型错误。

我发现this question给了我一个开始,但是像我所遇到的那样,我看不出如何将其应用于多种计算。

我该如何实现?

1 个答案:

答案 0 :(得分:1)

通常使用numpy的{​​{1}};按行逐行添加计算列;

np.where

注意;假设在此情况下,当任何列包含“ -999”时将不计算该值,并返回“ -999”。