Python 初心者です。
【実現したいこと】
2つのデータフレームがあります。いずれも、同じ要素(date,items,sales)から構成されてます。
1つのデータフレームdf1(返品リスト)の各行の「date,items」について、もう1つのデータフレームdf2(売上リスト)に該当する行があるかを確認したいです。
確認の結果をdf1に列を追加して’True’、’False’を記載したいと考えております。
※df1の各行の「date,items」と一致する行がdf2に含まれているかを確認し、結果をdf1に記載したいです。
【実施したこと】
df1とdf2の一致をfor 文で実施できないかと思いました。
この方法だと一致の有無は、確認できそうですが、結果をdf1に反映する方法がわからないです
(例だと、Cは8つの要素になってしまうため)
※コードのイメージですとdf1の1行目はTrue 、2行目はFalseを追加するようにできないかと考えております
import numpy as np import pandas as pd data1={ 'date':['21/07/02','21/07/15'], 'items':['A','B'], 'sales':[-100,-300] } df1=pd.DataFrame(data1,columns=["date","items","sales"]) data2={ 'date':['21/07/02','21/07/02','21/07/07','21/07/15'], 'items':['A','B','A','C'], 'sales':[100,300,150,300] } df2=pd.DataFrame(data2,columns=["date","items","sales"]) c=[] for i,row_df1 in df1[["date","items"]].iterrows(): #print(i,row_df1) for j,row_df2 in df2[["date","items"]].iterrows(): #print(j,row_df2) if (row_df1==row_df2).all() : c.append(True) #break else: c.append(False)
ネットなどを探したのですがうまく発見できなかったです。
改善方法等についてアドバイスをいただけますと幸いです。
よろしくお願いいたします。
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2021/07/17 09:33