Поскольку set_value
был устаревшим с версии 0.21.0, вы должны теперь использовать at
. Он может вставить список в ячейку, не поднимая ValueError
, как loc
. Я думаю, что это потому, что at
всегда ссылается на одно значение, а loc
может ссылаться на значения, а также на строки и столбцы.
df = pd.DataFrame(data={'A': [1, 2, 3], 'B': ['x', 'y', 'z']})
df.at[1, 'B'] = ['m', 'n']
df =
A B
0 1 x
1 2 [m, n]
2 3 z
Нет, вышеупомянутый макрос нельзя преобразовать в функцию ceil in-kernel, так как в ядре такой функции нет. Хотя, если внимательно посмотреть вышеупомянутый макрос, то есть
#define CEIL(a, b) (((a) + (b-1)) / (b))
Вышеприведенная функция является альтернативой для функции DIV_ROUND_UP в ядре. Таким образом, можно опустить макрос в ядре и использовать функцию DIV_ROUND_UP в функции вызова.
Это верно, если a и b оба являются целыми числами.
Макрос ядра CEIL(a, b)
полностью отличается от библиотечной функции ceil()
C. Он даже не принимает такое же количество аргументов!
Кроме того, функции с плавающей точкой (и математика с плавающей точкой в целом) недоступны в ядре. Заголовок <math.h>
не может использоваться в этой среде.