2つのcsvファイル。
1つは商品台帳(全体)の10列のCSV。もう1つのCSVファイルは在庫数(3列)のCSVファイルがあります。
やりたいことは、在庫数のCSVファイルの値を、全体のCSVに 商品コードをKeyにして反映したいと思っています。
python3
import pandas as pd df = pd.DataFrame({ 'code': ['item1','item2','item3','item4','item5','item6'], 'on_off': [1,1,1,1,1,1], 'stock': [1,1,1,1,1,1], 'detail': ['文字列','文字列','文字列','文字列','文字列','文字列'] }) print(df) (実際は10列だが単純化して4列。重要なのはもう1つのCSVとは列数が異なる) # code on_off stock detail #0 item1 1 1 文字列 #1 item2 1 1 文字列 #2 item3 1 1 文字列 #3 item4 1 1 文字列 #4 item5 1 1 文字列 #5 item6 1 1 文字列 df_stock=pd.DataFrame({ 'code': ['item2','item5','item3'], 'on_off': [1,0,1], 'stock': [4,8,19]}) print(df_stock) # code on_off stock #0 item2 1 4 #1 item5 0 8 #2 item3 1 10 #3 item7 1 13 在庫csvの特定の列の値 df_stock['stock']を 元の全体CSVのdf['stock']列に商品コードをkeyにして 商品コードで合致した列の値を変更したいと思っています 求める結果 元帳CSV(df) ※の部分を在庫CSVの値に変更したい # code on_off stock detail #0 item1 1 1 文字列 #1 item2 1 ※4 文字列 #2 item3 1 ※10 文字列 #3 item4 1 1 文字列 #4 item5 1 1 文字列 #5 item6 1 ※8 文字列 #item7のように 元帳に存在しないコードが 在庫CSVに存在する場合は ※i「item7は元帳に存在しない旨 エラーを表示したい
自分でやった事。
いろいろ調べて たどり着いたのが、下記ページのwhere関数なのですが・
#Pandasで条件に合致した要素の置換を行うwhere関数の使い方
https://deepage.net/features/pandas-where.html
これが別の列の値・・を変更出来る方法ではないのかよくわからず・・
dfを辞書のようにkey操作するにはどうしたらいいものか・・
方向性でも教えていただけますと幸いです
追記 pandas find関数ですかね・・・もう一回自分でも考えてます・・
https://qiita.com/haru1977/items/2892480d31c296f2ec8e
まだ回答がついていません
会員登録して回答してみよう