2016-12-21 12 views
0

DataFrameに対応する(x,y)の値のリストがあります。私はちょうど、整数オフセット行のDataFrame内部の指定されたインデックス値を含む行全体を、取得できるようにする必要がありDataFrameから整数オフセットで行を取得するには?

for i in range(len(X_pca)): 

    pid = years_data.get_row_by_integer(i).name[0] 
    person_name = persons_df.iloc[pid].forename 

:私は何をしたい、このです。

どうすればいいですか?

私は多値インデックスを使用しています。私はあなたがMultiIndexの値の取得位置のためget_locが必要だと思う

enter image description here

+0

サンプルを追加できますか? – jezrael

+0

は 'df.iterrows()'を使います。 'DataFrameの内部の行の整数オフセットだけを考えると、あなたは説明できますか? – MMF

+0

@jezraelどのような例が必要ですか?それは基本的にMMFが提案するものです。整数のオフセットで行を取得したい。 – displayname

答えて

0

X_pca = pd.DataFrame({'person':[1,2,3], 
         'year':[2010,2010,2011], 
         'a':[4,5,6]}) 

X_pca = X_pca.set_index(['person','year']) 
print (X_pca) 
      a 
person year 
1  2010 4 
2  2010 5 
3  2011 6 

for i, row in X_pca.iterrows(): 
    #print (i) 
    #print (row) 
    print (X_pca.loc[i]) 
    pos = X_pca.index.get_loc(i) 
    print (X_pca.iloc[pos]) 

a 4 
Name: (1, 2010), dtype: int64 
a 4 
Name: (1, 2010), dtype: int64 
a 5 
Name: (2, 2010), dtype: int64 
a 5 
Name: (2, 2010), dtype: int64 
a 6 
Name: (3, 2011), dtype: int64 
a 6 
Name: (3, 2011), dtype: int64 

コラムaの選択値が必要な場合はこれは次のように、それがどのように見えるかです:

for i, row in X_pca.iterrows(): 
    #print (i) 
    #print (row) 
    print (X_pca.loc[i, 'a']) 
    pos = X_pca.index.get_loc(i) 
    print (X_pca.iloc[pos].a) 

4 
4 
5 
5 
6 
6 
+0

こんにちは!今すぐチェックできませんが、明日テストしてお知らせします!その間にありがとう! – displayname

+0

問題ありません。どのように動作するか教えてください。 – jezrael

関連する問題