我有以下 dfs:
df = pd.DataFrame({'a': [94, 170, 5],
'b': [31, 115, 8]}, index=[11, 12, 13])
df1 = pd.DataFrame({'idx': ["a", "b", "a"]}, index=[11, 12, 13])
我需要根据
"a"
中的值从"b"
或df
的df1["idx"]
中选择值。
我希望它高效,因为我的数据框会很大。
您需要使用索引查找,以
df1
作为构建idx
的参考,并以df
作为数据源:
idx, cols = pd.factorize(df1['idx'])
out = df.reindex(cols, axis=1).to_numpy()[np.arange(len(df)), idx]