2016-11-25 2 views
-1

私は2つのデータフレーム - 取引と会社を持っています。パンダ - 銀行声明文

トランザクションは、銀行から直接CSVに由来します。トランザクションの詳細を示す長い文字列を持つ列「予約テキスト」がありますが、これらの文字列はいくつかの要素によって異なりますが、ほとんどの場合、このような並べ替えがあります。

"Company Co. DERFTHD DE89758975869857 657878987エンドツーエンドのRef :. FRG.3.GH.15789"

会社は、2つの列を持つ企業のリストです - 『私が取り込まれている検索キー』と 『会社名』これらの "予約テキスト"文字列を検索して会社名を返すように指示します。

は、私が「検索キー」を使用し、「会社名」

EDITが含まれている取引フレームで新しい列を作成したい:申し訳ありません - 私はこれで合計初心者くさいです。もう一度試してみましょう。

だから、私は新しい列「E」を作成できるようにしたい名前

In [1]: df1 = pd.DataFrame([['cat','Bob'], ['dog','Joe'],['bird','Lary']], 
       columns=['A','B']) 
Out[2]: df1 
     A  B 
0 cat Bob 
1 dog Joe 
2 bird Lary 

と文字列のデータフレーム(だけでなく、他の列)

In [3]: df2 = pd.DataFrame([['the cat is big','2'],['the cat is small', 4], 
       ['the dog is small',3]], columns=['C','D'] 
Out[4]: 
      C   D 
0 the cat is big  2 
1 the cat is small 4 
2 the dog is small 3 

のデータフレームを持っていますdf1の情報に基づいて、列Cの文字列の「サブジェクト」を含むdf2に格納されます。

だから、「猫が大きい」「猫」が含まれ、その値が「ボブ」は

マイ所望の出力がこれですでなければなりません。

+1

ない私は理解してください - あなたは '検索key'上のマージを探していますか? 'transactions'データフレームに含まれている' search key'はどういうわけか? –

+1

[良い再現性のあるパンダの例を作る方法]を確認してください(0120-18753)。 – jezrael

+0

pd.concatを探してください –

答えて

2

データフレームの代わりにdf1の辞書を作成します。

df1_dict = {'cat':'Bob', 'dog':'Joe', 'bird':'Lary' }

for key, value in df1_dict.iteritems(): df2.loc[df2['C'].str.contains(key),'E'] = value

print df2