princelai
2017-05-22 12:14:05 +08:00
我自己随便写了个,思路就是 hash 值变为 index,然后用 pandas 的 index 对齐
import pandas as pd
import random
import itertools
a3 = pd.Series(random.sample(list(itertools.permutations(range(10),3)),100))
a = a3.apply(lambda x:list(x))
a.index = [hash(tuple(i)) for i in a.values]
a= pd.DataFrame(a)
a.columns = ['value_a']
a['idx_a'] = range(len(a))
b3 = pd.Series(random.sample(list(itertools.combinations(range(10),3)),50))
b = b3.apply(lambda x:list(x))
b.index = [hash(tuple(i)) for i in b.values]
b= pd.DataFrame(b)
b.columns = ['value_b']
b['idx_b'] = range(len(b))
b.iloc[pd.concat([a,b],axis=1,join='inner').idx_b.values]