0
-------------------------------
dfA:
-------------------------------
                special_name
site_id                       
A               Apple
B               Banana

-------------------------------
dfB:
-------------------------------
              42      41
site_id                             
A           20944   20356
B           41795   42823

結果が次のようになるように、特別な名前の列を dfB データフレームに追加する必要があります。

              42      41    special_name
site_id                             
A           20944   20356     Apple
B           41795   42823     Banana

私が試してみました:

dfB['special_name'] = dfA['special_name']

TypeError: incompatible index of inserted column with frame index

また、考えられる限り多くのマージ、連結、および結合のバリエーションを試しました。それらにはすべてエラーがあるため、たとえば次のようになります。

dfB = dfB.join(dfA, on='site_id')

KeyError: u'no item named site_id'

どんな助けでも大歓迎です。

4

1 に答える 1

2

この場合、正確には列ではないため、を使用するとjoinエラーがスローsite_idされます-それはDataFrameのインデックスです。あなたはただ使うことができるはずです:

dfB = dfB.join(dfA)

デフォルトでjoinは、インデックスで 2 つのフレームを結合することを前提としています。を使用して、DataFrame の列でon=を探し始めました。site_id

または、次を使用できますmerge

dfB = pandas.merge(dbA, dbB, left_index=True, right_index=True)
于 2013-10-30T00:06:54.940 に答える