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

时间:2017-08-30 06:31:09

标签: python pandas indexing subset indices

我面临的问题是,我只需要分配在不同行和列上的原始数据帧的子集。 E.g:

# 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

有人可以帮忙吗?

1 个答案:

答案 0 :(得分:5)

使用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