#python #python-3.x #pandas #dataframe #lambda
Вопрос:
Я пытаюсь скопировать элементы столбца 3 раза.
То есть,
Из фрейма данных = [A, B, C]
В кадр данных = [A, A, A, B, B, B, C, C, C]
Фрейм данных -gt; Фрейм данных
Может ли это быть достигнуто с помощью какой-либо лямбда-функции?
Ответ №1:
Вы можете сделать это, объединив фреймы данных:
import pandas as pd df = pd.DataFrame({"Values": ["A", "B", "C"]}) # output Values 0 A 1 B 2 C pd.concat([df, df, df]).sort_values("Values") # output Values 0 A 0 A 0 A 1 B 1 B 1 B 2 C 2 C 2 C
Или, если вы по какой-то причине хотите использовать apply, вы можете сделать это таким странным способом:
import itertools pd.DataFrame( itertools.chain(*df.Values.apply(lambda x: 3 * [x]).to_list()), columns=df.columns ) # output Values 0 A 1 A 2 A 3 B 4 B 5 B 6 C 7 C 8 C