2017-08-30 8 views
3

私は、元のデータフレームのサブセットだけを必要とするという問題に直面しています。例:インデックスのリストを使用したpandasデータフレームのエントリへのアクセス

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

出力:

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

マイ所望の出力がシリーズである:私は私の所望の値が配置されている行と列のインデックスのリストを提供することができます

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

3 
4 
8 

1つの助け?

答えて

5

使用pd.DataFrame.lookup

あなたは同様に上記のように

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.lookup(*zip(*array_indices)) 

array([3, 4, 8]) 
pd.Series(dfTest.values[i, j]) 

0 3 
1 4 
2 8 
dtype: int64 
関連する問題