質問編集履歴
3
サンプルコードを追記しました
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
サンプルコードを訂正しました
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
コードが間違えていました
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
|
-
|
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
|