2017-08-17 59 views
1

这里是我的代码,不管我做什么我继续获取错误并遵循所有索引相关的解决方案,任何人都可以帮助我吗?ValueError:只能比较具有相同标记的系列对象

site = pd.read_csv('../data/survey_site.csv') 
sampled = site.sample(n=1) 

site = site.reset_index(drop=True) 
sampled = sampled.reset_index(drop=True) 

mask = site.mask(site['name'] == sampled['name']) 
+1

尝试'掩模= site.mask(现场[ '名称'] ==取样[ '名称']。挤压( ))' – piRSquared

+0

Aaaaaaand它的工作原理......如果你能给出任何关于为什么问题出现的线索,我会非常高兴,但似乎是什么'样品'返回。非常非常感谢你。我也不知道如何给你的答复,因为这是我第一次问一个问题,如果你能告诉我如何,我会很感谢 – Skirmitch

+0

样本返回一个数据框。然后sample ['name']是一个系列。挤压是将它变成标量的简单方法。 – piRSquared

回答

1

的问题是site['name']sample['name']之间的比较是二pd.Series之间。你可以通过将其中的一个标为一个标量来绕过它。但是,我注意到你拿了sample长度为1。我怀疑你认为当你拿sample['name']这将是一个标量值。但是,它是一个系列的长度。所以你只需要做一个标量。

选项1

mask = site.mask(site['name'] == sampled['name'].squeeze()) 

选项2

mask = site.mask(site['name'] == sampled.loc[0, 'name'])