まったくどうしたらいいのかわからない
サンプルとして以下のデータフレームがあると仮定します
# sample of my real data data = {'RequestCode':[1111, 2222, 8888, 1212, 2222,1010, 1111], 'Code':['J1', 'J2', 'J8', 'J12', 'J2', 'J10', 'J1'], 'OrderDate':[20210218, 20210303, 20210303, 20210515, 20210515, 20210218, 20210515]} # Create DataFrame df = pd.DataFrame(data) df RequestCode Code OrderDate 0 1111 J1 20210218 1 2222 J2 20210303 2 8888 J8 20210303 3 1212 J12 20210515 4 2222 J2 20210515 5 1010 J10 20210218 6 1111 J1 20210515
別のフォルダにたくさんのCSVファイルがあります
全部の名前がfile{date}.csvというルールに従えている
中身もすべて同じ列の数と列名 [Date, Code, Cost, Number]
例えばfile20210303.csvが
Date Code Cost Number 20200512 8888 500 32581 20200803 2222 1500 21669 20210501 1313 2000 5679
"file20210218.csv"は
Date Code Cost Number 20210512 1111 1500 66581 18200803 3333 1500 21669 20210501 1010 2000 5679
csvファイル名の{date}の部分がdfのOrderDateにあるのであれば、それを読み込んでcsvの"Code"列がdfの"RequestCode"列に等しいところのNumberの値をdfの新し列として追加したい。イメージとして下記のdfになるかな
df RequestCode Code OrderDate Number 0 1111 J1 20210218 66581 1 2222 J2 20210303 21669 2 8888 J8 20210303 32581 3 1212 J12 20210515 4 2222 J2 20210515 5 1010 J10 20210218 5679 6 1111 J1 20210515
一つだけのファイルなら
df1 = pd.read_csv('file20210303.csv') df = pd.merge(df, df1, how = 'left', left_on =['RequestCode', 'OrderDate'], right_on =['Code','Date']) df = df.drop(['Cost'], axis=1)
こんな感じでしたが、複数になると、困ってます、教えてください