Python 如何遍历列并在列中只返回一个变量
我一直在尝试将数据帧中的列与列表进行比较,并找出差异。唯一的问题是,当我这样做时,它会给出差异列表,但会为每列添加一个条目 例如:Python 如何遍历列并在列中只返回一个变量,python,pandas,numpy,Python,Pandas,Numpy,我一直在尝试将数据帧中的列与列表进行比较,并找出差异。唯一的问题是,当我这样做时,它会给出差异列表,但会为每列添加一个条目 例如: def Type(): list1=['Dog','Cat','Monkey','Horse', 'Giraffe'] list2=Zoo['Animal'].values.tolist() new_list = (set(list1).difference(set(list2))) return new_list
def Type():
list1=['Dog','Cat','Monkey','Horse', 'Giraffe']
list2=Zoo['Animal'].values.tolist()
new_list = (set(list1).difference(set(list2)))
return new_list
Zoo['Animal Type'] = Zoo.apply(lambda row: Type(), axis = 1)
Zoo['Animal Type']
返回
34 {Cat, Monkey, Dog, Horse}
38 {Cat, Monkey, Dog, Horse}
39 {Cat, Monkey, Dog, Horse}
41 {Cat, Monkey, Dog, Horse}
46 {Cat, Monkey, Dog, Horse}
47 {Cat, Monkey, Dog, Horse}
48 {Cat, Monkey, Dog, Horse}
49 {Cat, Monkey, Dog, Horse}
而不是在最后列出差异,如:
0 Cat
1 Monkey
2 Dog
3 Horse
我只希望每个差异在输出中声明一次。任何帮助都会很棒。在
Type
函数中,您在哪里使用行
?很抱歉,我复制了另一段代码,并对其进行了编辑以用于此示例。我编辑了它并更新了示例。我使用的是数据框“动物园”中的“动物”列,它是通过读取csv制作的。我认为你可以用不同的方式来实现这一点。。。试试看zoo.loc[~zoo['Animal-Type'].isin(列表1),'Animal-Type']
我用zoo['Animal-Type']=zoo.loc[~zoo['Animal'].isin(列表1),'Animal']
试过了,它返回了我需要的格式,但它只显示了空白值而不是差异。我做错什么了吗?@ZebraDonkey你能发布上面讨论的动物园的样子吗。