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

时间:2018-05-15 09:44:35

标签: python list pandas dataframe

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

   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

并希望得到:

   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]

这是我的代码片段,我希望它能完全实现,只有它没有。

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)

1 个答案:

答案 0 :(得分: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]