pandas:从作为另一列的值给出的列名称中选择值

问题描述 投票:0回答:1

我有以下 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"]
中选择值。

我希望它高效,因为我的数据框会很大。

python pandas select
1个回答
0
投票

您需要使用索引查找,以

df1
作为构建
idx
的参考,并以
df
作为数据源:

idx, cols = pd.factorize(df1['idx'])

out = df.reindex(cols, axis=1).to_numpy()[np.arange(len(df)), idx]
© www.soinside.com 2019 - 2024. All rights reserved.