12

これらの列名を持つデータフレームがあります

  • 'チーム1',
  • 'チーム2',
  • '街'、
  • '日にち'。

私がやりたいのは、特定の条件が満たされたときに「都市」の値を「ドバイ」として割り当てることです(マスクを使用して定義しています)。

これは私が正確にやっていることです:

 matches[((matches['team1']=='mi') & (matches['team2']=='rcb') & (matches['date']=='2014-04-19')),'city']='Dubai'

上記の条件がすべて満たされた場合、「city」(現在は null) の値を「Dubai」に変更したい

発生する問題:

「シリーズ」オブジェクトは可変であるため、ハッシュできません

これどうやってするの?

4

1 に答える 1

16

ブラケット ( ) 表記は、Python オブジェクトのメソッドに[]アクセスします (メソッドが定義されている場合)。__getitem__オブジェクトのpd.DataFrame場合、ブラケットを介してオブジェクトのような配列を渡すことができdf[array_like_object]、いくつかのことの1つを実行します

可能性 1

# returns a copy of df with columns ['col1', 'col2']
df[['col1', 'col2']]

可能性 2

# returns a slice of which rows have corresponding trues in the mask
df[boolean_mask]

他の可能性をスキップする


あなたは持っていますboolean_mask

((matches['team1']=='mi') & 
 (matches['team2']=='rcb') & 
 (matches['date']=='2014-04-19'))

そして、column

'city'

この場合、 Per @JohnGaltlocを正確に処理できるのは完璧です

matches.loc[
    ((matches['team1']=='mi') &
     (matches['team2']=='rcb') &
     (matches['date']=='2014-04-19')),
    'city'
] = 'Dubai'
于 2016-12-29T19:02:28.253 に答える