2015-02-23 63 views
2

我有一个DataFrame,我需要添加一列。列必须是两个值的列表:将列添加到熊猫DataFrame包含其他列的值列表

当前表:

lat long other_value 
0 50 50 x 
1 60 50 y 
2 70 50 z 
3 80 50 a 

所需表:

lat long other_value new_column 
0 50 50 x   [50, 50] 
1 60 50 y   [60, 50] 
2 70 50 z   [70, 50] 
3 80 50 a   [80, 50] 

我知道这是超级简单,但文档似乎没有不掩盖这一点(至少不明显)。

回答

3

一种方法是使用tolist()

>>> df['new_column'] = df[['lat', 'long']].values.tolist() 
>>> df 
    lat long other_value new_column 
0 50 50   x [50, 50] 
1 60 50   y [60, 50] 
2 70 50   z [70, 50] 
3 80 50   a [80, 50] 

虽然在一般,我会非常谨慎,因为他们更难以在列操纵DataFrames使用列表中,你没有得到很多整数/浮点数带来的性能优势。

+0

我一直纳闷关于dataframes名单。关于为什么你无法检查df中的位置是否为空列表的任何信息? – 2015-02-23 20:09:50

+0

我更新了我的问题以包含一个额外的列。这就是为什么.values不起作用。也就是说,除非我可以说.values并指定要使用的列。我能做你认为的事吗? – 2015-02-23 20:11:41

+0

@EJM - 当然,我已经更新了我的答案。 – 2015-02-23 20:12:50

1

你可以使用ZIP

df['new_column'] = list(zip(df.lat, df.long))