Python применяет функцию к строкам данных, которые записывают вывод функции в столбцы в одной строке - PullRequest
0 голосов
/ 16 января 2019

У меня есть DataFrame, как показано ниже, и я хочу применить функцию, которая вычисляет что-то с помощью 'Value' и в соответствии с результатом записывает в один из столбцов: A, B, C, D Информация о том, какой результат записатьв котором столбец находится в формате dict

Проблема заключается в том, что функция не записывает нужные данные в кадр данных.(с использованием df.iterrows это работало, но заняло много времени)

  date                flow      A   B   C   D  

0     2017-01-01 00:00:00  7185.0                                  
1     2017-01-01 00:15:00  7145.0                                   
2     2017-01-01 00:30:00  7135.0                                   
3     2017-01-01 00:45:00  7122.0                                  
4     2017-01-01 01:00:00  7142.0   


def my_func(row):
    low, high = nearest_neighbours(row) 

    if row['Flow'] > max(xp):
        col = [k for k, val in dict.iteritems() if value == max(dict.values())]
        row[col] = 0.25

    elif row['Flow'] == 0:
        row['A'] = 0.25

    else:
        col = [k for k, val in dict.iteritems() if value == low]
        row[col] = (high - row['Flow']) / (4 * (high - low))

        col = [k for k, val in dict.iteritems() if value == high]
        row[col] = (row['Flow'] - low) / (4 * (high - low))

df.apply(my_func,axis=1)

Скопировать из комментария:

У меня есть сообщение, которое выглядит как:

{'A':3000, 'B':6000, 'C':9000 etc.} 

Я хочу записать какое-то значение в столбцы A-D в соответствии с тем, где значение 'Flow' относительно диктовки.
Например:

if Flow ==7500:
    # write some values in C and D
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...