У меня есть pandas.DataFrame
с двумя (или более) сериями, которые не относятся к типу str
(например, тип float). Я хочу получить вывод ser ie типа str
, который является результатом конкатенации моей серии (типа float) с заданным разделителем (например, "-").
Следующая функция build_df_ex
создает примерный фрейм данных:
def build_df_ex(n):
df_ex = pd.DataFrame({"s1": -abs(np.random.rand(int(n))),
"s2": +abs(np.random.rand(int(n)))})
return df_ex
Функция convert_to_str_and_add
создает желаемую конкатенацию:
def convert_to_str_and_add(df, sep="-"):
df = df.astype(str)
s = df.s1 + sep + df.s2
return s
Моя главная проблема заключается в том, что эта функция имеет линейную сложность ( см. график ниже), что в моем случае непомерно. Основным узким местом функции является преобразование в тип str
. Я пытался go numpy, но я не видел никакого увеличения производительности, вероятно, потому, что это то, что pandas уже делает под капотом.
У кого-нибудь есть решение, которое ускорило бы эту операцию?
Большое спасибо