私は2つの.csvファイルAとBを持っています。Aには1,000,000行と2つの列があります。 Bは20行2列です。Python。 forループとdictsの使用:ファイルAの行:ファイルBの一致出力の取得
A:
Var1 S
x 2
y 1
z 7
x 2
x 3
z 4
B:
Var1 Var2
x a
y b
z c
A及びBは、3つの変数(x、y、z)を用いてカラムVAR1を有するが、Aで彼らは、彼らはこのようにユニークではないが、Bではユニークではない。 Bには3つの変数(a、b、c)を持つ追加列Var2があります。 PythonやRを使用して、私はAとBの間VAR1の試合でに新しい列VAR2を追加することによって、新しいファイルCを作成したいと思いますので、私はこのような何かを得ることができます。
C:
をVar1 S Var 2
x 2 a
y 1 b
z 7 c
x 2 a
x 3 a
z 4 c
私はPythonで辞書やforループを使用していましたが、成功しませんでした。私の問題は、 "for A:"を使用すると、Aからの出力情報しか得られないということです。一方、私が "Bのために"使うならば、私はBからの出力情報しか得られません。私はそれが論理的な意味を持たないことを知っていますが、私は "Aのために、Bから一致する出力情報を得ます"
重要:「マージ」操作は、「pandas」(Python)またはR(dplyr、merge)のいずれかを使用して非常に簡単に実行されることを、ユーザーのフィードバックを通じて認識しました。それは私が思ったよりも簡単でした。コード
import pandas as pd
# create your two dataset here and perform below operation
pd.merge(FIRST_TABLE, SECOND_TABLE, how='left', on=['Var1'])
これが役に立てば幸い以下
「マージ(A、B)」または「ライブラリ(dplyr)」を実行してください。 'R'のleft_join(A、B) ' – akrun
@akrunに非常に感謝して、それは完璧に働いた! – Lucas
私はこれが重複しているとは思わない。パンダは過労です – Stats4224