2

階層的にインデックス付けされたデータ フレームがあります。

>>> import pandas as pd
>>> df = pd.DataFrame(np.arange(4),
                      index=[['John', 'John', 'Vicki', 'Vicki'], 
                             ['a','b', 'a','b']],
                      columns=['score'])

         score
John  a      0
      b      1
Vicki a      2
      b      3

上記のデータ フレームの最初のインデックス レベルと同じインデックスを持つシリーズ:

>>> series = pd.Series([100, 200], index=['John', 'Vicki'])

John     100
Vicki    200

ここで、データ フレームをシリーズとマージして、シリーズの値が第 2 レベルのインデックスに沿ってブロードキャストされるようにします。結果のデータ フレームは次のようになります。

         score  salary
John  a      0     100
      b      1     100
Vicki a      2     200
      b      3     200

どうすればパンダでそれを達成できますか?

4

1 に答える 1

2

これはうまくいくはずです:

df['salary'] = series.reindex(df.index, level=0)
于 2012-09-17T16:16:28.827 に答える