2017-04-24 9 views
3

をカスタムインデックスを持っている私は、次のデータフレーム持っている:私は私にこのシリーズを追加しようとするとはそれで

purchase_4 = pd.Series({'Name': 'Kevyn', 
         'Item Purchased': 'Kitty Food', 
         'Cost': 3.00, 
         'Location': 'Store 2'}) 

:その後、私は、次のシリーズを持っている

purchase_1 = pd.Series({'Name': 'Chris', 
         'Item Purchased': 'Dog Food', 
         'Cost': 22.50}) 
purchase_2 = pd.Series({'Name': 'Kevyn', 
         'Item Purchased': 'Kitty Litter', 
         'Cost': 2.50}) 
purchase_3 = pd.Series({'Name': 'Vinod', 
         'Item Purchased': 'Bird Seed', 
         'Cost': 5.00}) 
df = pd.DataFrame([purchase_1, purchase_2, purchase_3], index=['Store 1', 'Store 1', 'Store 2']) 
df['Location'] = df.index 
df = df.set_index(['Location', 'Name']) 
df2 = df.copy() 
print(df2) 

       Cost Item Purchased 
Location Name      
Store 1 Chris 22.5  Dog Food 
     Kevyn 2.5 Kitty Litter 
Store 2 Vinod 5.0  Bird Seed 

をDFそれは動作しますが、NaNをの束を持っています

df2 = df2.append(purchase_4, ignore_index=True) 

    Cost Item Purchased Location Name 
0 22.5  Dog Food  NaN NaN 
1 2.5 Kitty Litter  NaN NaN 
2 5.0  Bird Seed  NaN NaN 
3 3.0  Kitty Food Store 2 Kevyn 

答えて

1

あなたがconcat使用することができます。

df2 = pd.concat([df2, purchase_4.to_frame().T.set_index(df.index.names)]) 
print (df2) 
       Cost Item Purchased 
Location Name      
Store 1 Chris 22.5  Dog Food 
     Kevyn 2.5 Kitty Litter 
Store 2 Vinod  5  Bird Seed 
     Kevyn  3  Kitty Food 

またはloc、セットのため()使用マルチインデックス:

df2.loc[(purchase_4['Location'], purchase_4['Name']),:] = purchase_4 
print (df2) 
       Cost Item Purchased 
Location Name      
Store 1 Chris 22.5  Dog Food 
     Kevyn 2.5 Kitty Litter 
Store 2 Vinod 5.0  Bird Seed 
     Kevyn 3.0  Kitty Food 
1

代替ソリューション:

In [237]: df.append(purchase_4.to_frame().T.set_index(df.index.names)) 
Out[237]: 
       Cost Item Purchased 
Location Name 
Store 1 Chris 22.5  Dog Food 
     Kevyn 2.5 Kitty Litter 
Store 2 Vinod  5  Bird Seed 
     Kevyn  3  Kitty Food