2017-09-28 8 views
0

パンダのデータフレームの別の列にある要素の隅を見つける必要があります。 データフレームは、このようなものです:パンダのインデックス項目

EVENT  CODE   DAY 
event01  102934  00/00/0000 
event02  021384  00/00/0000 
event03  045823  00/00/0000 

私のスクリプトは、このようなものです:たとえば

for a in df["EVENT"]: 
    print(a + " " + code) 

//event01 102934 
//event02 021384 
//event03 045823 

私はevent03(そう045823)に関連付けられたコードが何であるかを見つけるしたいと思います。どのようにできるのか?ありがとうございました!私はDataFrame.locで選択し最も単純には、列EVENTによってset_indexだと思うと

答えて

1

df = df.set_index('EVENT') 
print (df) 
      CODE   DAY 
EVENT      
event01 102934 00/00/0000 
event02 021384 00/00/0000 
event03 045823 00/00/0000 

CODEのユニークな値については、それがスカラーを返すユニークです:

print (df.loc['event01', 'CODE']) 
102934 

print (df.loc['event02', 'CODE']) 
021384 

print (df.loc['event02', 'DAY']) 
00/00/0000 

しかし、複数の値が、それは返す場合Series

df = df.set_index('EVENT') 
print (df) 
      CODE   DAY 
EVENT      
event01 103453 00/00/0000 
event01 102934 00/00/0000 
event02 021384 00/00/0000 
event03 045823 00/00/0000 

print (df.loc['event01', 'CODE']) 
EVENT 
event01 103453 
event01 102934 
Name: CODE, dtype: object 
012あなたが iterrowsを使用することができますループの場合

for i, x in df.iterrows(): 
    print (x['EVENT'] + ' ' + x['CODE']) 

event01 102934 
event02 021384 
event03 045823 
+0

"set_index"とは何ですか? –

+0

カラムから迅速に選択するヘルパー・ラベルを作成することを意味します。詳細については、[docs](http://pandas.pydata.org/pandas-docs/stable/indexing.html)を参照してください。 – jezrael

+0

列内の各要素のprint(event + "" + code)を反復処理するにはどうしたらいいですか? –

0

あなたは、単に他のすべてのイベントをフィルタリングして、単にdf[df["Event"]== "event01"]["CODE"]によって要求された属性を返すことができます。

ただし、すべてのイベントを繰り返し処理したい場合は、answerに案内してください。

関連する問題