2016-08-02 17 views
2

pandasでは、関数の行番号を参照できますか?私は.ilocについて話していません。行番号に依存する関数

ilocは場所、つまり行番号をとり、データフレーム値を返します。

データフレーム内のロケーション番号にアクセスしたいとします。

たとえば、関数が3行下と2列のセルにある場合、整数3を返す方法が必要です。その位置にあるエントリではありません。

ありがとうございました。

+0

実際のDataFrameで例を挙げることはできますか? –

+0

これは役に立ちますか? http://stackoverflow.com/questions/18199288/getting-the-integer-index-of-a-pandas-dataframe-row-fulfilling-a-condition –

+1

私はyuoが必要と思います['get_loc'](http:// pandas.pydata.org/pandas-docs/stable/generated/pandas.Index.get_loc.html) – jezrael

答えて

1

は、それがdfの最初の行であったことを示している。この行については何もありませんデータフレームdf

df = pd.DataFrame([[1, 2], [3, 4]], ['a', 'b'], ['c', 'd']) 

df 

enter image description here

と行row

row = df.ix['a'] 

row 

c 1 
d 2 
Name: a, dtype: int64 

考えてみましょう。その情報は本質的に失われています。

あなたはjezraelの助言@取ると、あなたのインデックスがユニークである場合get_loc

df.index.get_loc(row.name) 

0 

しかし、これだけで作品を使用することができます。

唯一の他の選択肢は、入手したときの位置を追跡することです。それを行うための最善の方法は次のとおりです。私は自分の携帯電話上でのサンプルコードが、イムを追加couldntのdf.iterrows()

for i, (idx, row) in enumerate(df.iterrows()): 
    print "row position: {:>3d}\nindex value: {:>4s}".format(i, idx) 
    print row, '\n' 

row position: 0 
index value: a 
c 1 
d 2 
Name: a, dtype: int64 

row position: 1 
index value: b 
c 3 
d 4 
Name: b, dtype: int64 
0

申し訳上

使用enumerate。 piRSquaredは情報が失われたと言ったときに私の恐れを確認しました。私は病気が毎回ループをしなければならないか、数字の列を追加しなければならないと思う(私はそれらを並べ替えるとスクランブルされるだろう:/)。

ありがとうございました。

関連する問題