3

我有一个数据框df

    A   B
0   1   4
1   2   5
2   3   6

还有一个系列s

0    A
1    B
2    A

现在我想dfs. 预期结果是:

0    1  <- from column A
1    5  <- from column B
2    3  <- from column A

我怎样才能有效地完成这项工作?

4

1 回答 1

2

用于Index.get_indexer索引Series并通过 numpy 索引来选择值2d array

a = df.to_numpy()
b = a[np.arange(len(df)), df.columns.get_indexer(s)]
print (b)
[1 5 3]

s1 = pd.Series(b, s.index)
print (s1)
0    1
1    5
2    3
dtype: int64
于 2021-07-14T09:11:31.967 回答