我正在使用pandas
groupby
并且想知道如何实现以下功能:
数据框 A 和 B 具有相同的索引变量,但 A 有 20 个唯一索引值,B 有 5 个。
我想创建一个数据框 C,其中包含索引存在于 A 而不是 B 中的行。
假设 B 中的 5 个唯一索引值都存在于 A 中。在这种情况下,C 将只有那些与 A 中的索引值相关联的行,而不是 B 中的那些行(即 15)。
使用内部、外部、左侧和右侧不要这样做(除非我误读了某些内容)。
在 SQL 中,我可能会这样做where A.index <> (not equal) B.index
我的左撇子解决方案:
a) 从每个数据集中获取相应的索引列,比如 x 和 y。
默认匹配(x,y,compareCol):
"""
x and y are series
compare col is the name to the series being returned .
It is the same name as the name of x and y in their respective dataframes"""
x = x.unique()
y = y.unique()
""" Need to compare arrays x.unique() returns arrays"""
new = []
for item in (x):
if item not in y:
new.append(item)
returnADataFrame = pa.DataFrame(pa.Series(new, name = compareCol))
return returnADataFrame
b) 现在在数据集 A 上对此进行左连接。
我有理由相信,我的元素比较就像一只没有动力的杂草上的乌龟一样缓慢。