質問編集履歴

3

サンプルコードを追記しました

2022/04/30 00:35

投稿

dub
dub

スコア23

test CHANGED
File without changes
test CHANGED
@@ -33,6 +33,17 @@
33
33
  df.loc[df['code'].isin(update['code']), 'stock'] = update['stock_y'].values
34
34
  df.loc[df['code'].isin(update['code']), 'detail'] = update['detail_y'].values
35
35
 
36
+
37
+ print(df) 
38
+ #現在の数値
39
+ code on_off stock detail
40
+ 0 item1 1 1 文字列A
41
+ 1 item2 1 4 文字列あ #←df_stockの値が代入されている)
42
+ 2 item3 1 19 文字列う#←df_stockの値が代入されている)
43
+ 3 item4 1 1 文字列D
44
+ 4 item5 1 8 文字列い #←df_stockの値が代入されている)
45
+ 5 item6 1 1 文字列F
46
+
36
47
  print(df) 
37
48
  #求める結果。 item5のDFには値が入っているため、df_stockの値が代入されない
38
49
  #item2 item3 の該当列は 空白 なので df_stockの値が代入される
@@ -41,7 +52,7 @@
41
52
  1 item2 1 4 文字列あ #←iDFの該当行が「空白の時のみ」maskでdf_stockの値が代入される
42
53
  2 item3 1 19 文字列う #←DFの該当行が「空白の時のみ」maskでdf_stockの値が代入される
43
54
  3 item4 1 1 文字列D
44
- 4 item5 1 8 文字列E #←dfの文字列E がそのまま残る(値が入っている場合は代入されない)
55
+ 4 item5 1 8 文字列E #←dfの文字列E がそのまま残る(値が入っている場合は代入されない)
45
56
  5 item6 1 1 文字列F
46
57
  ```
47
58
 

2

サンプルコードを訂正しました

2022/04/30 00:26

投稿

dub
dub

スコア23

test CHANGED
File without changes
test CHANGED
@@ -31,6 +31,7 @@
31
31
  #
32
32
  update = df.merge(df_stock, on='code', how='inner')
33
33
  df.loc[df['code'].isin(update['code']), 'stock'] = update['stock_y'].values
34
+ df.loc[df['code'].isin(update['code']), 'detail'] = update['detail_y'].values
34
35
 
35
36
  print(df) 
36
37
  #求める結果。 item5のDFには値が入っているため、df_stockの値が代入されない

1

コードが間違えていました

2022/04/30 00:21

投稿

dub
dub

スコア23

test CHANGED
File without changes
test CHANGED
@@ -25,8 +25,9 @@
25
25
  df_stock=pd.DataFrame({
26
26
  'code': ['item2','item5','item3'],
27
27
  'on_off': [1,0,1],
28
- 'stock': [4,8,19]})
28
+ 'stock': [4,8,19],
29
- 'detail': ['文字列あ','文字列い','文字列う',]
29
+ 'detail': ['文字列あ','文字列い','文字列う']
30
+ })
30
31
  #
31
32
  update = df.merge(df_stock, on='code', how='inner')
32
33
  df.loc[df['code'].isin(update['code']), 'stock'] = update['stock_y'].values