将pandas表的每一行转换为list并添加到表中

Chr*_*ian 1 python list dataframe pandas

我想将每一行转换为一个列并插入一个新列.例如,我从下表开始:

   0  1  2  3  4
0  0  8  3  2  5
1  1  1  2  2  4
2  0  8  9  6  4
3  2  7  6  1  9
4  8  9  1  5  6
Run Code Online (Sandbox Code Playgroud)

并希望得到:

   0  1  2  3  4  test
0  0  8  3  2  5  [0, 8, 3, 2, 5]
1  1  1  2  2  4  [1, 1, 2, 2, 4]
2  0  8  9  6  4  [0, 8, 9, 6, 4]
3  2  7  6  1  9  [2, 7, 6, 1, 9]
4  8  9  1  5  6  [8, 9, 1, 5, 6]
Run Code Online (Sandbox Code Playgroud)

这是我的代码片段,我希望它能完全实现,但事实并非如此.

import pandas as pd
import numpy as np

df = pd.DataFrame(np.random.randint(low=0, high=10, size=(5, 5)))
df['list'] = df.apply(lambda x: x.tolist(), axis=1)
print(df)
Run Code Online (Sandbox Code Playgroud)

lll*_*lll 7

您可以使用:

In [127]: df['test'] = df.values.tolist()

In [128]: df
Out[128]: 
   0  1  2  3  4             test
0  0  8  3  2  5  [0, 8, 3, 2, 5]
1  1  1  2  2  4  [1, 1, 2, 2, 4]
2  0  8  9  6  4  [0, 8, 9, 6, 4]
3  2  7  6  1  9  [2, 7, 6, 1, 9]
4  8  9  1  5  6  [8, 9, 1, 5, 6]
Run Code Online (Sandbox Code Playgroud)

  • +1表示正确答案.但我认为我们应该评论在数据框中存储列表通常是一个糟糕的设计选择.您放弃所有矢量化功能. (3认同)