有时,你可能需要将Pandas DataFrame 转换为 Python 中的列表。
但是你会怎么做呢?如何将Pandas DataFrame转换为列表?
要完成此任务,你可以使用tolist 如下:
df.values.tolist()
在这个简短的指南中,我将向你展示一个使用 tolist 将 Pandas DataFrame 转换为列表的示例和Pandas DataFrame转换为列表的方法。
使用 tolist 将 Pandas DataFrame 转换为 List 的示例
假设你有以下有关产品和价格的数据:
Product(产品) | Price(价格) |
Tablet | 250 |
iPhone | 800 |
Laptop | 1200 |
Monitor | 300 |
然后你决定使用 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转换为列表的方法 - 如果要将列名添加到列表中,则需要按如下方式修改代码:
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)
这是你运行代码后会看到的:
老实说,在你我之间,这份名单看起来很难看。
让我们进行一些格式化以表格形式显示列表:
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))
结果:
好多了!
因此,一旦你的列表格式良好,你就可以执行一些额外的操作,例如将值附加到列表中。
例如,假设你有另一个产品(例如,价格为 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现在将附加到列表中:
将 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)
运行代码,你将获得以下列表:
如果你想在“产品”列表中附加一个附加项目(例如,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转换为列表?有时,你可能会遇到相反的情况,你需要将列表转换为 DataFrame。如果是这种情况,你可能需要查看以下解释如何在 Python 中将列表转换为 DataFrame 的来源。