Скопируйте один и тот же элемент несколько раз в один и тот же столбец, Панды

#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