Недавно я наткнулся на метод dataframe .assign(), и мне понравилось, как с его помощью можно четко выразить создание новых столбцов. Очень интуитивно понятно создавать столбцы, которые являются функциями других столбцов и объектов, однако присвоение строкового скаляра возвращает NaN для всего столбца. Это имеет смысл, если посмотреть в документации, что метод принимает аргументы ключевого слова с вызываемым объектом или серией в качестве значений, но даже при использовании лямбда-выражения для переноса строки в функцию он возвращает столбец значений NaN.
str_scalar = "Hello"
df = df.assign(str_scalar_col = str_scalar)
# column str_scalar_col is all NaN
df = df.assign(str_scalar_col = lambda x: str_scalar)
# column str_scalar_col is still all NaN
Может быть, это связано с типом столбца, созданного по умолчанию?
Обычно я бы просто назначил столбец на месте, но любопытно, если . Assign() может назначить строковый скалярный столбец.
df['str_scalar'] = "Hello"
# column str_scalar is all "Hello"
Подробнее здесь: https://stackoverflow.com/questions/790 ... ing-scalar