使用索引列表访问 pandas 数据框中的条目

Access entries in pandas data frame using a list of indices

我面临的问题是我只需要分布在不同行和列上的原始数据框的一个子集。例如:

# My Original dataframe
import pandas as pd
dfTest = pd.DataFrame([[1,2,3],[4,5,6],[7,8,9]])

输出:

   0  1  2
0  1  2  3
1  4  5  6
2  7  8  9

我可以提供一个列表,其中包含我想要的值所在的行和列索引:

array_indices = [[0,2],[1,0],[2,1]]

我想要的输出是一个系列:

3
4
8

有人能帮忙吗?

使用pd.DataFrame.lookup

dfTest.lookup(*zip(*array_indices))

array([3, 4, 8])

您可以将其包装在 pd.Series 构造函数中

pd.Series(dfTest.lookup(*zip(*array_indices)))

0    3
1    4
2    8
dtype: int64

轻微变体

i, j = np.array(array_indices).T
dfTest.values[i, j]

array([3, 4, 8])

同上

pd.Series(dfTest.values[i, j])

0    3
1    4
2    8
dtype: int64