Liste in Pandas Dataframe-Spalte konvertieren


79

Ich muss meine Liste in einen einspaltigen Pandas-Datenrahmen konvertieren

Aktuelle Liste (len = 3):

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

Erforderliche Pandas DF (Form = 3,):

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

Bitte beachten Sie, dass die Zahlen den Index in Required Pandas DF oben darstellen.


1
Ihr Code (und der Fehler) sind es wert, veröffentlicht zu werden. Auf diese Weise können wir erklären, was Sie falsch gemacht haben
OneCricketeer

Antworten:


156

Verwenden:

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

Danke DYZ :

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

14
df = pd.DataFrame(L)
DYZ

@jezrael Hallo, wie setze ich ein anderes Trennzeichen als Komma?
Sygneto

@sygneto - brauchst du L = stringdata.split(';')?
Jezrael

@jezarael Ich versuche, Split zu verwenden und es dann in Datenrahmen zu konvertieren, aber ich AttributeError: 'list' object has no attribute 'split'
erhalte

1
@GuillaumeLabs - ya, es passierte, wenn Sie listwie Variable verwenden, wie list=[1,2,3], Sie brauchen list1oder L, dann starten Sie IDE neu und alles funktioniert gut.
Jezrael

11

Wenn Ihre Liste so aussieht: [1,2,3] können Sie Folgendes tun:

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

um dies zu bekommen:

    col1    col2    col3
0   1       2       3

Alternativ können Sie eine Spalte wie folgt erstellen:

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

um dies zu bekommen:

  col1
0   1
1   2
2   3

2

Sie können die direkt anrufen

pd.DataFrame ()

Methode und übergeben Sie Ihre Liste als Parameter.

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

Ausgabe:

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

Und wenn Sie mehrere Listen haben und daraus einen Datenrahmen erstellen möchten, können Sie dies wie folgt tun:

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()

Ausgabe:

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

1

Beispiel:

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

Codeblock:

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

Ausgabe:

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

Es wird nicht empfohlen, die Spaltennamen des Panda-Datenrahmens zu entfernen. Wenn Sie Ihren Datenrahmen jedoch weiterhin ohne Header haben möchten (gemäß dem Format, das Sie in der Frage angegeben haben), können Sie dies tun:

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

Die Ausgabe sieht folgendermaßen aus:

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

oder

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

Die Ausgabe ist jedoch eine Liste anstelle eines Datenrahmens:

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

Hoffe das hilft!!


0

Zum Konvertieren einer Liste in einen Pandas Core Data Frame müssen wir die DataFrame- Methode aus dem Pandas- Paket verwenden.

Es gibt verschiedene Möglichkeiten, den oben genannten Vorgang auszuführen.

Pandas als pd importieren

  1. pd.DataFrame ({'Column_Name': Column_Data})
  • Spaltenname : Zeichenfolge
  • Column_Data : Listenformular
  1. Data = pd.DataFrame (Column_Data)

    Data.columns = ['Column_Name']

Für das oben erwähnte Problem ist das Code-Snippet also

import pandas as pd

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

Data = pd.DataFrame({'Text': Content})
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.