ValueError: Can only compare identically-labeled Series objects

ValueError: Can only compare identically-labeled Series objects

这是我的代码,无论我做什么,我总是收到错误并遵循所有与索引相关的解决方案,有人可以帮助我吗?

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'])

问题是 site['name']sample['name'] 之间的比较是在两个 pd.Series 之间进行的。您可以通过将其中之一设为标量来绕过它。但是,我注意到您使用了长度 1sample。我怀疑您认为当您取 sample['name'] 时它会是一个标量值。但它是一个长度的系列。所以你只需要 make 是一个标量。

选项 1

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

选项 2

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