куда будут внесены в тестовом виде данные по заданной строке, который будет представлять для каждой строки "название столбца: содержимое данного столбца". т.е. к примеру фрейм имеет столбцы - a, b, c, d. нужен отдельный столбец text для текстового представления столбиков c, d. к примеру для строки с индексом i: df.loc[i, "text"] == "c: text1, d: text2". где text1 == df.loc[i, "c"], text2 == df.loc[i, "d"].
если использовать простую итерацию по индексам, а затем по столбикам, то время будет измеряться часами. нужно сделать как можно быстрее?
я вот такой код использую
for index, row in df.iterrows():
text = ""
for col in target_cols:
text += dict_name[col]
text += ": "
text += str(row[col])
text += "."
# row["text"] = text
df.loc[index, "text"] = text
2. возникает проблема в размере файла. т.к. он большой то в память не влазит. возможно конечно считвание по частям и дозапись, но может есть другие способы?
Ну как дополнительный вариант, если такая простая формула, которой нужны только данные из данного ряда... может и не надо добавлять столбец в фрейм?
нужно текстовое представление
Лично я не вижу как это можно ускорить. Разве что отвлекаясь от темы тут больше f- строки подойдут чем конкатенация. Имхо просто стоит из одного файла итерироваться читать, в другой итерироваться писать (но у тебя и так об этом речь, насколько я понял) А еще думаю тут пандас не нужен и можно обойтись встроенной либой для csv (но ничего не могу сказать про то как соотносится их скорость)
Обсуждают сегодня