teratail header banner
teratail header banner
質問するログイン新規登録

回答編集履歴

1

補足追加

2020/05/06 02:52

投稿

magichan
magichan

スコア15898

answer CHANGED
@@ -7,7 +7,12 @@
7
7
  ```Python
8
8
  df.loc[df['XYZ_MA60']>=df['XYZ_MA120'], 'XYZ_M60/120'] = 1
9
9
  ```
10
- となります。`.loc[g]
10
+ となります。
11
+ (ちょっと補足)
12
+ このmethodは`.loc[行、列]`のように指定することで、戻り値として Viewと呼ばれる元のデータフレームの一部を切り出したものを返します。
13
+ このViewは元のDataFrameのデータに対する参照となりますので、Viewにデータを直接書き込むことで元のデータフレームを更新することが出来ます。
14
+ 今回の場合は `df['XYZ_MA60']>=df['XYZ_MA120']`にて該当する行を`True`とした Boolean配列 が得られますのでこのデータを行に指定、、'XYZ_M60/120'を列を指定することで該当の位置にデータを書き込むことができるようになります。
15
+ (ここまで)
11
16
 
12
17
  あとは(B<C)、D列[XYZ_MA60/120]の該当行に-1を入れる処理を追加して
13
18