2017-11-26 3 views
-1

Matchesという名前のパンダのデータフレームがあり、MatchIDsという列があります。後パンダ列の文字列がリストに表示されているかどうかを確認する

Man CityTottenham 
BoltonMan City 
Man CityWigan 
NewcastleMan City 
ChelseaMan City 
Man CityWest Ham 
Man UnitedMan City 
Man CityFulham 
Man CityBlackpool 

は、私は何を::このMatchesデータフレームの別の列で

、各ID、0または1のバイナリ出力のために、IDが表示された場合、これは以下のようにマッチIDの選択が含まれています完全に別のDataFrameで、Rivals(リスト/ディクショナリが良いかどうかはわかりません)と呼んでください。

例: だから、別のデータフレームRivalsで、そこに次のようになります。

Man CityTottenham 
Man UnitedMan City 
ChelseaMan City 

、元DATAFRAME Matchesのために、1 MatchIDがRivalsに表示されている場合、与えられない場合は0です。私が試したことの正しい方法を見つけるのに苦労してきた

NewcastleMan City = 0のに対し、それは、 Rivalsデータフレームに表示されますので、= 1

Man CityTottenham  1 
BoltonMan City  0 
Man CityWigan   0 
NewcastleMan City  0 
ChelseaMan City  1 
Man CityWest Ham  0 
Man UnitedMan City 1 
Man CityFulham  0 
Man CityBlackpool  0 

のでMan UnitedMan City:正しい出力は、右側の欄ですこれは本当に助けに感謝します!

うまくいけば説明は十分です。 astypeによってintRivalsと呼ばれる二dfの列MatchIDsの検査値、最後のキャストブールマスクの

答えて

0

使用isin

Matches['new'] = Matches['MatchIDs'].isin(Rivals['MatchIDs']).astype(int) 

また値がlistにある場合:

Matches['new'] = Matches['MatchIDs'].isin(L).astype(int) 
関連する問題