如何为两个数据框列的每一行值创建一个列表

时间:2018-07-13 17:50:18

标签: python list pandas dataframe multiple-columns

我有两列,我想为每一行创建一个列表。因此,每个列表将包含两个值。该特定行的每一列的值。 例如:

A B
1 2
3 4
5 6

我想为每行值(即[1,2], [3,4], [5,6]

)提供一个列表

你能帮我这个吗?

2 个答案:

答案 0 :(得分:2)

如果要将其保存在数据框中,则可以使用它:

df['new'] = df.values.tolist()

>>> df
   A  B     new
0  1  2  [1, 2]
1  3  4  [3, 4]
2  5  6  [5, 6]

否则,如果只需要列表,请使用:

df.values.tolist()

[[1, 2], [3, 4], [5, 6]]

甚至只是df.values(尽管结果将是numpy数组,而不是列表列表):

>>> df.values
array([[1, 2],
       [3, 4],
       [5, 6]])

答案 1 :(得分:0)

如果您具有以下DataFrame:

print(df)
#   A  B
#0  1  2
#1  3  4
#2  5  6

将行作为列表获取的一种方法是使用to_records()

print([list(x) for x in df.to_records(index=False)])
#[[1, 2], [3, 4], [5, 6]]

或者如果您想包括索引:

print([list(x) for x in df.to_records(index=True)])
#[[0, 1, 2], [1, 3, 4], [2, 5, 6]]