比较两个熊猫系列中的字符串条目
问题描述:
我有两个熊猫系列,只是想比较它们的字符串值,并返回它们共同的值的字符串(也可能是索引)汉娜,弗兰克和厄尼在下面的例子::比较两个熊猫系列中的字符串条目
print(x)
print(y)
0 Anne
1 Beth
2 Caroline
3 David
4 Ernie
5 Frank
6 George
7 Hannah
Name: 0, dtype: object
1 Hannah
2 Frank
3 Ernie
4 NaN
5 NaN
6 NaN
7 NaN
做
x == y
抛出一个
ValueError: Can only compare identically-labeled Series objects
一样
x.sort_index(axis=0) == y.sort_index(axis=0)
和
x.reindex_like(y) > y
做些事情,但不是正确的事情!
答
如果需要共同的价值观不仅可以使用第一列转换为set
和使用intersection
:与reset_index
a = set(x).intersection(y)
print (a)
{'Hannah', 'Frank', 'Ernie'}
而对于指数需要merge
默认inner join
的转换指标的列:
df = pd.merge(x.rename('a').reset_index(), y.rename('a').reset_index(), on='a')
print (df)
index_x a index_y
0 4 Ernie 3
1 5 Frank 2
2 7 Hannah 1
细节:
print (x.rename('a').reset_index())
index a
0 0 Anne
1 1 Beth
2 2 Caroline
3 3 David
4 4 Ernie
5 5 Frank
6 6 George
7 7 Hannah
print (y.rename('a').reset_index())
index a
0 1 Hannah
1 2 Frank
2 3 Ernie
3 4 NaN
4 5 NaN
5 6 NaN
6 7 NaN
+0
这正是我所追求的。谢谢!! – npross
看来x比y更长! – IanS