Convertir lista en columna de marco de datos de Pandas


82

Necesito convertir mi lista en un marco de datos de pandas de una columna

Lista actual (len = 3):

['Thanks You',
 'Its fine no problem',
 'Are you sure']

Pandas DF requerido (forma = 3,):

0 Thank You
1 Its fine no problem
2 Are you sure

Tenga en cuenta que los números representan el índice en Required Pandas DF arriba.


1
Su código (y el error) son la pena aguantar, de esa manera podemos explicar lo que hizo mal
OneCricketeer

Respuestas:


162

Utilizar:

L = ['Thanks You', 'Its fine no problem', 'Are you sure']

#create new df 
df = pd.DataFrame({'col':L})
print (df)

                   col
0           Thanks You
1  Its fine no problem
2         Are you sure

df = pd.DataFrame({'oldcol':[1,2,3]})

#add column to existing df 
df['col'] = L
print (df)
   oldcol                  col
0       1           Thanks You
1       2  Its fine no problem
2       3         Are you sure

Gracias DYZ :

#default column name 0
df = pd.DataFrame(L)
print (df)
                     0
0           Thanks You
1  Its fine no problem
2         Are you sure

15
df = pd.DataFrame(L)
DYZ

@jezrael hola, ¿cómo establecer un separador diferente a la coma?
sygneto

@sygneto - ¿lo necesitas L = stringdata.split(';')?
jezrael

@jezarael estoy tratando de usar split y luego convertirlo a dataframe pero estoy recibiendoAttributeError: 'list' object has no attribute 'split'
sygneto

1
@GuillaumeLabs: sí, sucedió si se usa listcomo variable, como list=[1,2,3], necesita list1o L, luego reinicia IDE y todo funciona bien.
jezrael

13

si su lista se ve así: [1,2,3] puede hacer:

lst = [1,2,3]
df = pd.DataFrame([lst])
df.columns =['col1','col2','col3']
df

para conseguir esto:

    col1    col2    col3
0   1       2       3

alternativamente, puede crear una columna de la siguiente manera:

import numpy as np
df = pd.DataFrame(np.array([lst]).T)
df.columns =['col1']
df

para conseguir esto:

  col1
0   1
1   2
2   3

3

Puede llamar directamente al

pd.DataFrame ()

y pase su lista como parámetro.

l = ['Thanks You','Its fine no problem','Are you sure']
pd.DataFrame(l)

Salida:

                      0
0            Thanks You
1   Its fine no problem
2          Are you sure

Y si tiene varias listas y desea hacer un marco de datos a partir de ellas, puede hacerlo de la siguiente manera:

import pandas as pd
names =["A","B","C","D"]
salary =[50000,90000,41000,62000]
age = [24,24,23,25]
data = pd.DataFrame([names,salary,age]) #Each list would be added as a row
data = data.transpose() #To Transpose and make each rows as columns
data.columns=['Names','Salary','Age'] #Rename the columns
data.head()

Salida:

    Names   Salary  Age
0       A    50000   24
1       B    90000   24
2       C    41000   23
3       D    62000   25

Podrías hacerlo pd.DataFrame(zip(names,salary,age)), ¿verdad?
adir abargil

2

Ejemplo:

['Thanks You',
 'Its fine no problem',
 'Are you sure']

bloque de código:

import pandas as pd
df = pd.DataFrame(lst)

Salida:

    0
0   Thanks You
1   Its fine no problem
2   Are you sure

No se recomienda eliminar los nombres de las columnas del marco de datos panda. pero si aún desea su marco de datos sin encabezado (según el formato que publicó en la pregunta) puede hacer esto:

df = pd.DataFrame(lst)    
df.columns = ['']

La salida será así:

0   Thanks You
1   Its fine no problem
2   Are you sure

o

df = pd.DataFrame(lst).to_string(header=False)

Pero la salida será una lista en lugar de un marco de datos:

0           Thanks You
1  Its fine no problem
2         Are you sure

¡¡Espero que esto ayude!!


0

Para convertir una lista en el marco de datos principal de Pandas, necesitamos usar el método DataFrame del paquete pandas .

Hay diferentes formas de realizar la operación anterior.

importar pandas como pd

  1. pd.DataFrame ({'Column_Name': Column_Data})
  • Column_Name : Cadena
  • Column_Data : formulario de lista
  1. Datos = pd.DataFrame (Column_Data)

    Data.columns = ['Column_Name']

Entonces, para el problema mencionado anteriormente, el fragmento de código es

import pandas as pd

Content = ['Thanks You',
           'Its fine no problem',
           'Are you sure']

Data = pd.DataFrame({'Text': Content})
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.