2014-01-09 19 views
1

在下面的熊貓數據框中使用包含整數的列表的最常用Pythonic方法是什麼?我的第一個目標是檢索所有行中所有列表中所有唯一值的列表。在包含整數的列中將列的行與Python結合使用

index col1                                  
54  [53, 31, 20, 33, 54, 191, 172, 112, 42, 61, 57] 
55  [53, 31, 201, 9, 30, 21, 50, 113, 26, 39, 40, 59] 
57  [34, 201, 37, 35, 21, 40, 163, 179, 1] 

我試過apply(lambda x: set(x))但它只適用於單個列表而不是整列。

只需添加一些進度,我已經做得非常接近,我完全忘記了您可以將列表添加到一起以合併數字。這是我所做的我認爲非常pythonic。 :

list(set(df1['col1'][0] + df1['col'][1])) 

它得到了我一個不錯的組合組唯一值的,但現在我必須弄清楚如何把每一行都添加彼此。如df1['col1'][0] + df1['col1'][1]+...+df1['col1'][n]

嘗試列表理解是讓我一個列表的組合集合,但試圖把它看起來像上面的set方法的輸出。

[(df1['col1'][x]) for x in range(len(df1))] 
+0

謝謝,但我一點也不確定你的意思。如果你能舉一個例子,我真的很感激它。 – horatio1701d

回答

4

你可以使用itertools.chain合併列表 - 我認爲這將是最pythonic的解決方案。

from itertools import chain 
set(chain.from_iterable(df1['col1'])) 
+0

這是itertools爲我節省了一天的第二次。非常感謝。這巧妙地做了伎倆。 – horatio1701d

相關問題