我收到一个错误,说"ValueError:只能比较相同标记的系列对象"。我甚至知道我正在比较两个系列对象,而不是它们中的值。但是,我认为series[column]
给了你内心的价值。有人可以详细说明这一点吗?我真的被困在我可以找到这些信息的地方,并且非常希望被指向正确的方向。 all_ages
和recent_grads
是数据帧。
import pandas as pd
majors = recent_grads['Major'].unique()
rg_lower_count = 0
for x in majors:
aa_major = all_ages[all_ages['Major'] == x]
rg_major = recent_grads[recent_grads["Major"] == x]
if rg_major["Unemployment_rate"] < aa_major["Unemployment_rate"]:
rg_lower_count += 1
print(rg_lower_count)
看到我的这个老问题
你不能再这样做了。 当您比较<
时,>
您需要将索引对齐。 reindex
你的一个系列就像另一个一样。
我会像这样编辑你的代码
import pandas as pd
majors = recent_grads['Major'].unique()
rg_lower_count = 0
for x in majors:
aa_major = all_ages[all_ages['Major'] == x]
rg_major = recent_grads[recent_grads["Major"] == x]
rg_major_unemp = rg_major["Unemployment_rate"]
aa_major_unemp = aa_major["Unemployment_rate"].reindex_like(rg_major_unemp)
if rg_major_unemp < aa_major_unemp:
rg_lower_count += 1
print(rg_lower_count)
示范
与链接问题中的示例相同
import pandas as pd
x = pd.Series([1, 1, 1, 0, 0, 0], index=['a', 'b', 'c', 'd', 'e', 'f'], name='Value')
y = pd.Series([0, 2, 0, 2, 0, 2], index=['c', 'f', 'a', 'e', 'b', 'd'], name='Value')
x > y
ValueError: Can only compare identically-labeled Series objects
x.reindex_like(y) > y
c True
f False
a True
e False
b True
d False
Name: Value, dtype: bool