差分

このページの2つのバージョン間の差分を表示します。

この比較画面へのリンク

両方とも前のリビジョン前のリビジョン
次のリビジョン
前のリビジョン
次のリビジョン両方とも次のリビジョン
programming:python:packages:pandas:update_multi_column [2019/06/12] ikatakosprogramming:python:packages:pandas:update_multi_column [2019/06/13] ikatakos
行 1: 行 1:
 ======DataFrameの値の更新 - pandas====== ======DataFrameの値の更新 - pandas======
  
-pandasは、DataFrameへのアクセス方法がいろいろあお世辞に統一的とは言えないので、よく「この書き方でいいんだっけ」と混乱する。+pandasは、DataFrameへのアクセス方法がいろいろあるため値の取得・代入もよく「この書き方でいいんだっけ」と混乱する。
  
-基本的には(一般的な代入と同じく)左辺で更新するデータ範囲を、右辺で値を指定するのだが、左辺データ範囲の指定方法が様々あるのに加え、右辺での値の指定にも複数方法がある。+基本的には(一般的な代入と同じく)左辺で更新するデータ範囲を、右辺で値を指定するのだが、左辺データ範囲の指定方法が様々あるのに加え、右辺での値の指定にも複数方法がある。
  
   df.loc[df['col1']==3, ['col2', 'col3']] = df['col4']   df.loc[df['col1']==3, ['col2', 'col3']] = df['col4']
 +  
 +  col1 が 3 である行の col2,col3 列を、ともに同行の col4 の値にする
  
 大別すると以下の感じ。 大別すると以下の感じ。
-左辺のアクセス関数に例えば配列を渡しても、関数の種類や配列の中身によって、名前か、添字か、どのように解釈されるか異なってくるのがややこしさの元となる。+左辺のアクセス関数に例えば配列を渡しても、関数の種類や配列の中身によって、名前か、添字か、どのように解釈されるか異なってくるのがややこしさの元となる。
  
   * 左辺のアクセス関数   * 左辺のアクセス関数
行 46: 行 48:
  
   * [[http://sinhrks.hatenablog.com/entry/2014/11/12/233216|Python pandas データ選択処理をちょっと詳しく <前編> - StatsFragments]]   * [[http://sinhrks.hatenablog.com/entry/2014/11/12/233216|Python pandas データ選択処理をちょっと詳しく <前編> - StatsFragments]]
 +
 +loc, ilocは原則 ''[行, 列]'' の順で、locが名前、ilocが添字として解釈されるため意味を明確にコーディングしたい場合はそちらを使うのが良い。
 +
 +対してgetitemは、なんとなくよく使う方で解釈されるため、便利な反面、行なのか列なのか時と場合で変わり、紛らわしいので注意。
  
 ^                                                                  |^  getitem                                                        ^  loc                                              ^  iloc                                         ^ ^                                                                  |^  getitem                                                        ^  loc                                              ^  iloc                                         ^
programming/python/packages/pandas/update_multi_column.txt · 最終更新: 2021/12/03 by ikatakos
CC Attribution 4.0 International
Driven by DokuWiki Recent changes RSS feed Valid CSS Valid XHTML 1.0