如何将pandas DataFrame的列转换为列表的列表?
我有一个包含多个列的 pandas 数据框。
2u 2s 4r 4n 4m 7h 7v
0 1 1 0 0 0 1
0 1 0 1 0 0 1
1 0 0 1 0 1 0
1 0 0 0 1 1 0
1 0 1 0 0 1 0
0 1 1 0 0 0 1
我想做的是把这个 pandas.DataFrame
转换成下面这样的列表
X = [
[0, 0, 1, 1, 1, 0],
[1, 1, 0, 0, 0, 1],
[1, 0, 0, 0, 1, 1],
[0, 1, 1, 0, 0, 0],
[0, 0, 0, 1, 0, 0],
[0, 0, 1, 1, 1, 0],
[1, 1, 0, 0, 0, 1]
]
2u、2s、4r、4n、4m、7h、7v 是列的标题。这个标题会根据不同的情况而变化,所以不用太在意它。
2 个回答
2
要把数据框(Dataframe)转换成列表,可以使用 tolist() 函数来实现。假设我有一个数据框 df。
要转换成列表,你只需要简单地使用 tolist() 函数。
df.values.tolist()
你也可以通过以下方式将某一特定的列转换成列表:
df['column name'].values.tolist()
73
看起来像是一个转置的矩阵:
df.values.T.tolist()
[list(l) for l in zip(*df.values)]
[[0, 0, 1, 1, 1, 0],
[1, 1, 0, 0, 0, 1],
[1, 0, 0, 0, 1, 1],
[0, 1, 1, 0, 0, 0],
[0, 0, 0, 1, 0, 0],
[0, 0, 1, 1, 1, 0],
[1, 1, 0, 0, 0, 1]]