将列表转换为 Pandas Dataframe 列

问题描述 投票:0回答:7

我需要将我的列表转换成一个单列的 pandas 数据框。

当前列表(len=3):

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

需要 Pandas DF(形状 =3,):

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

注意数字代表上面所需的 Pandas DF 中的索引。

python list pandas dataframe
7个回答
260
投票

用途:

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

谢谢DYZ:

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

34
投票

如果你的列表看起来像 [1,2,3],你可以这样做:

import pandas as pd

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

得到这个:

    col1    col2    col3
0    1        2        3

或者,您可以创建一个列,如下所示:

import numpy as np
import pandas as pd

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

得到这个:

  col1
0    1
1    2
2    3

9
投票

您可以直接调用

pd.DataFrame()
方法并将您的列表作为参数传递。

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

输出:

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

如果你有多个列表并且你想从中制作一个数据框。你可以这样做:

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

输出:

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

3
投票

例子:

['Thank You',
 'It\'s fine no problem',
 'Are you sure?']

代码块:

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

输出:

    0
0    Thank You
1    It's fine no problem
2    Are you sure?

不建议去掉 Pandas dataframe 的列名。但是,如果您仍然想要没有标题的数据框(根据您在问题中发布的格式),您可以这样做:

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

输出将是这样的:

0    Thank You
1    It's fine no problem
2    Are you sure?

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

但是输出将是一个列表而不是数据框:

0             Thank You
1  It's fine no problem
2         Are you sure?

2
投票

要将列表转换为 Pandas 核心数据框,我们需要使用 pandas 包中的 DataFrame 方法。

执行上述操作有不同的方式(假设Pandas导入为

pd

  1. pandas.DataFrame({'Column_Name':Column_Data})
  • Column_Name : String
  • Column_Data : 列表形式
  1.  Data = pandas.DataFrame(Column_Data)`
     Data.columns = ['Column_Name']
    

所以,对于上面提到的问题,代码片段是

import pandas as pd

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

Data = pd.DataFrame({'Text': Content})

1
投票
list = ['Thanks You', 'Its fine no problem', 'Are you sure']
df = pd.DataFrame(list)

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

栏目名称:

df.columns = ['col name']

0
投票

您还可以

assign()
现有数据框的列表。如果您链接多个方法并且需要分配一个您需要在链中稍后使用的列,这将特别有用。

df = pd.DataFrame()
df1 = df.assign(col=['Thanks You', 'Its fine no problem', 'Are you sure'])

© www.soinside.com 2019 - 2024. All rights reserved.