Python Pandas将列转换为数据框列表

问题描述:

我已经在电子邮件中获得了每个项目换行符的列表,我想要做的只是复制并粘贴,然后另存为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

如果你的输出为[['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

尝试:

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

从复制粘贴的格式不知何故,大熊猫会认为你已经给了它一张(4 x 2)的桌子。因此,在这种特殊情况下,如果您的数据框是mylist,那么您需要mylist.iloc[:,0].values.tolist()

不过说真的,只是把文件读入一个字符串,并调用.split()要简单得多,更快更稳健。