Выполнение расчетов по нескольким столбцам в фрейме данных и создание новых столбцов - PullRequest
0 голосов
/ 10 декабря 2018

Я пытаюсь выполнить расчеты на основе записей в pandas кадре данных.Кадр данных выглядит примерно так: enter image description here и содержит 1466 строк.Мне придется выполнить аналогичные вычисления на других df с несколькими строками позже.

Я пытаюсь вычислить что-то вроде mag = '(U-V)/('R-I)' (но игнорируя любые значения, которые-999), поместите это в новый столбец, а затем z_pred = 10**((mag-c)m) в новый столбец (mag, c и 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']

, но получил либоСерия для z, с которой я не мог оперировать, или ошибки различных типов, когда я пытался напечатать значения или записать их в файл.

Я нашел этот вопрос , который далДля начала, но я не понимаю, как применить его к нескольким вычислениям, как в моей ситуации.

Как мне этого добиться?

1 Ответ

0 голосов
/ 10 декабря 2018

Условное добавление вычисляемых столбцов по строкам обычно выполняется с numpy 's np.where;

df['mag'] = np.where(~df[['U', 'V', 'R', 'I']].eq(-999).any(1), (df.U - df.V) / (df.R - df.I), -999)

Примечание;при условии, что здесь, когда любой из столбцов содержит «-999», он не будет рассчитан и будет возвращен «-999».

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...