如何将Pandas DataFrame转换为列表?

2021年9月19日23:04:24 发表评论 1,557 次浏览

有时,你可能需要将Pandas DataFrame 转换为 Python 中的列表。

但是你会怎么做呢?如何将Pandas DataFrame转换为列表

要完成此任务,你可以使用tolist 如下:

df.values.tolist()

在这个简短的指南中,我将向你展示一个使用 tolist 将 Pandas DataFrame 转换为列表的示例和Pandas DataFrame转换为列表的方法

使用 tolist 将 Pandas DataFrame 转换为 List 的示例

假设你有以下有关产品和价格的数据:

Product(产品)Price(价格)
Tablet250
iPhone800
Laptop1200
Monitor300

然后你决定使用 Pandas DataFrame在 Python 中捕获该数据。

在某个时候,你意识到你想将该 Pandas DataFrame 转换为列表。

为了实现这个目标,你可以使用以下 Python 代码,它将允许你将 DataFrame 转换为列表,其中:

  • 代码的顶部包含使用我们的产品和价格数据创建 DataFrame的语法
  • 代码的底部使用以下方法将 DataFrame 转换为列表:df.values.tolist()

这是完整的 Python Pandas DataFrame转换为列表示例代码:

import pandas as pd

products = {'Product': ['Tablet','iPhone','Laptop','Monitor'],
            'Price': [250,800,1200,300]
            }

df = pd.DataFrame(products, columns= ['Product', 'Price'])

products_list = df.values.tolist()
print (products_list)

而且一旦运行代码,就会得到如下多维列表(即list of list):

如何将Pandas DataFrame转换为列表?

但是列名呢?

Pandas DataFrame转换为列表的方法 - 如果要将列名添加到列表中,则需要按如下方式修改代码:

import pandas as pd

products = {'Product': ['Tablet','iPhone','Laptop','Monitor'],
            'Price': [250,800,1200,300]
            }

df = pd.DataFrame(products, columns= ['Product', 'Price'])

products_list = [df.columns.values.tolist()] + df.values.tolist()
print (products_list)

这是你运行代码后会看到的:

如何将Pandas DataFrame转换为列表?

老实说,在你我之间,这份名单看起来很难看。

让我们进行一些格式化以表格形式显示列表:

import pandas as pd

products = {'Product': ['Tablet','iPhone','Laptop','Monitor'],
            'Price': [250,800,1200,300]
            }

df = pd.DataFrame(products, columns= ['Product', 'Price'])

products_list = [df.columns.values.tolist()] + df.values.tolist()
f = '{:<8}|{:<15}' # formatting

for i in products_list:
    print(f.format(*i))

结果:

如何将Pandas DataFrame转换为列表?

好多了!

因此,一旦你的列表格式良好,你就可以执行一些额外的操作,例如将值附加到列表中。

例如,假设你有另一个产品(例如,价格为 150 美元的Printer)并且你想将它附加到列表中。

这是你可以使用的 Python Pandas DataFrame转换为列表示例

import pandas as pd

products = {'Product': ['Tablet','iPhone','Laptop','Monitor'],
            'Price': [250,800,1200,300]
            }

df = pd.DataFrame(products, columns= ['Product', 'Price'])

products_list = [df.columns.values.tolist()] + df.values.tolist()
products_list.append(['Printer',150])
f = '{:<8}|{:<15}' # format

for i in products_list:
    print(f.format(*i))

价格为 150 美元的Printer现在将附加到列表中:

如何将Pandas DataFrame转换为列表?

将 DataFrame 中的单个列转换为列表

如何将Pandas DataFrame转换为列表?假设你想将“产品”列转换为列表。

然后,你可以使用以下模板将 DataFrame 中的单个列转换为列表:

df['column name'].values.tolist()

这是将“Product”列转换为列表的完整 Python 代码:

import pandas as pd

products = {'Product': ['Tablet','iPhone','Laptop','Monitor'],
            'Price': [250,800,1200,300]
            }

df = pd.DataFrame(products, columns= ['Product', 'Price'])

product = df['Product'].values.tolist()
print (product)

运行代码,你将获得以下列表:

如何将Pandas DataFrame转换为列表?

如果你想在“产品”列表中附加一个附加项目(例如,Printer)怎么办?

Pandas DataFrame转换为列表的方法为:在这种情况下,只需添加以下语法:

product.append('Printer')

所以完整的Pandas DataFrame转换为列表示例如下所示:

import pandas as pd

products = {'Product': ['Tablet','iPhone','Laptop','Monitor'],
            'Price': [250,800,1200,300]
            }

df = pd.DataFrame(products, columns= ['Product', 'Price'])

product = df['Product'].values.tolist()
product.append('Printer')

print (product)

你现在将在列表末尾看到“Printer”:

如何将Pandas DataFrame转换为列表?

一个相反的场景

如何将Pandas DataFrame转换为列表?有时,你可能会遇到相反的情况,你需要将列表转换为 DataFrame。如果是这种情况,你可能需要查看以下解释如何在 Python 中将列表转换为 DataFrame 的来源。

木子山

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: