【发布时间】:2017-12-03 06:32:15
【问题描述】:
如果它们存在于数据框中,我会尝试标记一行。这是我的代码的 sn-p:
MissingAATracking = []
for row in UK.UK:
if row in links_adobe_uk:
MissingAATracking.append("NO")
else:
MissingAATracking.append("YES")
我收到以下错误:
> --------------------------------------------------------------------------- TypeError Traceback (most recent call
> last) <ipython-input-94-5b85f0a628ec> in <module>()
> 1 for row in UK.UK:
> ----> 2 if row in links_adobe_uk:
> 3 MissingAATracking.append("NO")
> 4 else:
> 5 MissingAATracking.append("YES")
>
> /anaconda/lib/python3.6/site-packages/pandas/core/generic.py in
> __contains__(self, key)
> 905 def __contains__(self, key):
> 906 """True if the key is in the info axis"""
> --> 907 return key in self._info_axis
> 908
> 909 @property
>
> /anaconda/lib/python3.6/site-packages/pandas/core/indexes/base.py in
> __contains__(self, key) 1588 @Appender(_index_shared_docs['__contains__'] % _index_doc_kwargs)
> 1589 def __contains__(self, key):
> -> 1590 hash(key) 1591 try: 1592 return key in self._engine
>
> TypeError: unhashable type: 'list'
我看过这里:Python, TypeError: unhashable type: 'list'
更新
这是我的英国数据框的头部的样子:
UK
0 Link1
1 Link1
2 Link1
3 Link1
4 Link1
还有我的 links_adobe_uk:
PageURL
0 (null)
1 Link1
2 Link1
3 Link1
4 Link1
我也尝试从两列中删除重复项,但我的英国数据框抛出了
TypeError: unhashable type: 'list'
但我似乎无法理解,因为 UK 和 links_adobe_uk 都是数据框。我会很感激这方面的指导
【问题讨论】:
-
您正在尝试从
links_adobe_uk中的UK数据帧中搜索一行,这是不可能的。您应该做的是为每行提供一些唯一键,或者使用索引来检查行是否存在于其他数据框中。 -
如果您显示几行 UK 和 links_adobe_uk 数据框,您将立即获得一种更有效的方式来做您想做的事情。
-
如果可能的话,也分享你的两个数据框的几行样本。我们将能够提供更好的帮助。
-
谢谢大家了
-
我刚刚尝试在 UK 数据框上删除重复但再次收到 TypeError: unhashable type: 'list' 错误
标签: python python-3.x pandas dataframe list-comprehension