我正在使用 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(),而无需对形状执行任何额外的代码检查以返回所需的输出。
