如何将Pandas DataFrame转换为列表()

有时,你可能需要将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 pdproducts = {'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 pdproducts = {'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 pdproducts = {'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}' # formattingfor i in products_list: print(f.format(*i))

结果:
如何将Pandas DataFrame转换为列表()

文章图片
好多了!
因此,一旦你的列表格式良好,你就可以执行一些额外的操作,例如将值附加到列表中。
例如,假设你有另一个产品(例如,价格为 150 美元的Printer)并且你想将它附加到列表中。
这是你可以使用的 Python Pandas DataFrame转换为列表示例:
import pandas as pdproducts = {'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}' # formatfor 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 pdproducts = {'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 pdproducts = {'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转换为列表()】如何将Pandas DataFrame转换为列表?有时,你可能会遇到相反的情况,你需要将列表转换为 DataFrame。如果是这种情况,你可能需要查看以下解释如何在 Python 中将列表转换为 DataFrame 的来源。

    推荐阅读