Skip to main content
 首页 » 编程设计

python之将只有一列的 Pandas 数据框转换为一维列表

2025年05月04日15JeffreyZhao

我正在使用 Pandas 数据框:

import pandas as pd 
a = [1,2,3] 
i = [5,2,3] 
df = pd.DataFrame( { "foo" : i, "bar" : a } ) 
df = df.set_index("foo") 
l = df.values.tolist() 
# l = [[1], [2], [3]] 

这很烦人,我喜欢 l = [1,2,3]。为什么我们得到一个列表列表?怎么才能得到一个列表呢?

请您参考如下方法:

这是一个不错的小实用函数,df.squeeze在 v0.20 中引入 -

df.squeeze() 
 
foo 
5    1 
2    2 
3    3 
Name: bar, dtype: int64 
 
df.squeeze().tolist() 
[1, 2, 3] 

如果数据框只有一列,它将被降级为一个系列。否则,什么也不会发生。

df 
     bar  baz 
foo           
5      1    4 
2      2    5 
3      3    6 
 
df.squeeze() 
 
     bar  baz 
foo           
5      1    4 
2      2    5 
3      3    6 

此函数的优点是您可以在其输出上安全地调用 .tolist(),而无需对形状执行任何额外的代码检查以返回所需的输出。