У меня есть 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