2017-08-30 66 views
3

我面臨的問題是我只需要分佈在不同行和列上的原始數據幀的子集。例如:使用索引列表訪問熊貓數據框中的條目

# 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 

Can any一個幫助?

回答

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