Obtención de elementos de varias columnas de listas en una trama de datos

user861938:

Tengo una trama de datos de esta manera:

     A            B             C
  [1,2,3]    ['a','b','c']    ['aa', 'bb', 'cc']
  [4,5,6]    ['d','e','f']    ['dd', 'ee', 'ff']
  [7,8,9]    ['g','h','i']    ['gg', 'hh', 'ii']

Me gustaría combinar los valores de estas columnas de la siguiente manera:

[[[1,'a', 'aa'], [2,'b','bb'], [3, 'c', 'cc']], [[4,'d','dd'], [5,'e', 'ee'], [6,'f','ff']], [[7,'g','gg'], [8,'h','hh'], [9,'i','ii']]]

Mi idea era cambiar cada columna a la lista como esta (que dará una lista de lista):

first = df['A'].values.tolist() # De manera similar para otras columnas

Y luego comprimir todas las listas e iterar a través de ellos a buscar a los valores correspondientes de cada lista y crear una nueva lista de acuerdo con el formato de salida. Sin embargo, estoy seguro de que hay mejores soluciones que la mía. Puede alguien ayudarme con esto?

YOBEN_S:

IIUC explodecongroupby

pd.concat([df[[x]].explode(x) for x in df.columns],axis=1)\
     .apply(lambda x : x.tolist(),axis=1).groupby(level=0).agg(list).tolist()
Out[366]: 
[[[1, 'a', 'aa'], [2, 'b', 'bb'], [3, 'c', 'cc']],
 [[4, 'd', 'dd'], [5, 'e', 'ee'], [6, 'f', 'ff']],
 [[7, 'g', 'gg'], [8, 'h', 'hh'], [9, 'i', 'ii']]]

Supongo que te gusta

Origin http://43.154.161.224:23101/article/api/json?id=292665&siteId=1
Recomendado
Clasificación