2015-02-23 96 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))