将列表转换为Pandas Dataframe列

Inh*_*eek 58 python list dataframe pandas

我需要将我的列表转换为一列pandas数据帧

当前列表(len = 3):

['Thanks You',
 'Its fine no problem',
 'Are you sure']
Run Code Online (Sandbox Code Playgroud)

必需的Pandas DF(shape = 3,):

0 Thank You
1 Its fine no problem
2 Are you sure
Run Code Online (Sandbox Code Playgroud)

请注意,这些数字代表上面所需的Pandas DF中的索引.

jez*_*ael 118

使用:

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
Run Code Online (Sandbox Code Playgroud)
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
Run Code Online (Sandbox Code Playgroud)

谢谢DYZ:

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

  • `df = pd.DataFrame(L)` (12认同)

Gra*_*non 23

如果您的列表如下所示:[1,2,3] 您可以:

import pandas as pd

lst = [1,2,3]
df = pd.DataFrame([lst])
df.columns =['col1','col2','col3']
df
Run Code Online (Sandbox Code Playgroud)

得到这个:

    col1    col2    col3
0   1       2       3
Run Code Online (Sandbox Code Playgroud)

或者,您可以按如下方式创建列:

import numpy as np
import pandas as pd

df = pd.DataFrame(np.array([lst]).T)
df.columns =['col1']
df
Run Code Online (Sandbox Code Playgroud)

得到这个:

  col1
0   1
1   2
2   3
Run Code Online (Sandbox Code Playgroud)


小智 10

您可以直接调用该pd.DataFrame()方法并将列表作为参数传递。

import pandas as pd
l = ['Thanks You', 'Its fine no problem', 'Are you sure']
pd.DataFrame(l)
Run Code Online (Sandbox Code Playgroud)

输出:

                      0
0             Thanks You
1    Its fine no problem
2           Are you sure
Run Code Online (Sandbox Code Playgroud)

如果您有多个列表并且您想从中创建一个数据框。您可以按照以下方式进行操作:

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()
Run Code Online (Sandbox Code Playgroud)

输出:

    Names    Salary    Age
0        A    50000     24
1        B     90000     24
2        C     41000     23
3        D     62000     25
Run Code Online (Sandbox Code Playgroud)