2016-12-02 132 views
1

我已經在電子郵件中獲得了每個項目換行符的列表,我想要做的只是複製並粘貼,然後另存爲csv並且有一個腳本創建一個python列表數據。由於它是從粘貼到文件的列,所以我得到的格式不正確,如果我改變了,我會在換行符上替換爲逗號,它看起來好一點,但仍然是從列中轉換而來,不正確,並且使用mylist.values .tolist()它仍然不起作用。這就是我所擁有的和發生的事情。我能做到這一點與內建的CSV庫,但不知道如何做到這一點P中Python Pandas將列轉換爲數據框列表

電子郵件格式,我粘貼:

福克斯 雞 貓 狗

當我投入CSV並把逗號:

福克斯, 雞,貓 , 狗

什麼我回來輸出:

mylist.values.tolist()

[['Fox, nan'], ['Chicken, nan'], ['Cat, nan'], ['Dog, nan']] 

我只是想:

['Fox','Chicken', 'Cat', 'Dog'] 

此外,如果我嘗試分配my_list = mylist.values.tolist()我得到了不支持的操作數'str'和'type'的異常。

任何幫助,將不勝感激,因爲我很喜歡大熊貓比內置的多,如果這是不可能的優雅我得回去。

+0

你確定你的輸出和你輸入的一樣嗎?它不是'[['Fox',nan],['Chicken',nan],['Cat',nan],['Dog',nan]]? – DyZ

+0

什麼類型是mylist?在任務中的例外是奇怪的,我怎麼能重複它?請舉出一個小例子,但是完整例外。 – eguaio

+0

你是對的,這是幾百個mac地址,所以我沒有複製和粘貼,對不起。 – Fallacy11

回答

0

如果你的輸出爲[['Fox', nan], ['Chicken', nan], ['Cat', nan], ['Dog', nan]](我相信這是),那麼你可以解壓縮列表分爲兩個部分:

names,nans=zip(*mylist.values.tolist()) 
# both names and nuns are tuples 
names = list(names) 
+1

我同意這有點奇怪,但'tolist()'方法確實返回一個字符串列表,它編碼用逗號分隔的所有值,如問題中所述。這不起作用。 – eguaio

+0

的確很奇怪。 – DyZ

0

嘗試:

slist = mylist.values.tolist() 
ilist = [l[0].split(',')[0].strip() for l in slist] 
0

從複製粘貼的格式不知何故,大熊貓會認爲你已經給了它一張(4 x 2)的桌子。因此,在這種特殊情況下,如果您的數據框是mylist,那麼您需要mylist.iloc[:,0].values.tolist()

不過說真的,只是把文件讀入一個字符串,並調用.split()要簡單得多,更快更穩健。