Добавить фрейм данных с одним индексом в фрейм данных с несколькими индексами, Pandas, Python - PullRequest
0 голосов
/ 17 мая 2018

как добавить один фрейм данных в мультииндексный фрейм данных?например

мои многоиндексные данные

                Name  Code  Buying_Date  Buying_Price  Buying_Qty  

Date     Code                                                      
20140117 none   a   1234          20170101           5         7   
20170120 none   b   5678          20180101           6         8   

, и я хочу добавить следующие данные в 'Date' = '20170120'

                Name  Code  Buying_Date  Buying_Price  Buying_Qty  

  Code                                                      
  abcd           af   abcd   20170101           5         7   
  efgh           bf   efgh   20180101           6         8   

желаемый результат равен

               Name  Code  Buying_Date  Buying_Price  Buying_Qty  

Date     Code                                                      
20140117 none   a   1234          20170101           5         7   
20170120 none   b   5678          20180101           6         8  
         abcd   af  abcd          20170101           5         7   
         efgh   bf  efgh          20180101           6         8   

Спасибо за ваши советы заранее.

1 Ответ

0 голосов
/ 17 мая 2018

Вы можете использовать:

df = df1.append(df2.assign(Date=20170120).set_index('Date', append=True).swaplevel(0,1))
print (df)
               Buying_Date  Buying_Price  Buying_Qty  Code  Code.1 Name
Date     Code                                                          
20140117 none     20170101             5           7   NaN  1234.0    a
20170120 none     20180101             6           8   NaN  5678.0    b
         abcd     20170101             5           7  abcd     NaN   af
         efgh     20180101             6           8  efgh     NaN   bf

Деталь

print (df2.assign(Date=20170120).set_index('Date', append=True).swaplevel(0,1))
              Name  Code  Buying_Date  Buying_Price  Buying_Qty
Date     Code                                                  
20170120 abcd   af  abcd     20170101             5           7
         efgh   bf  efgh     20180101             6           8

Объяснение

  1. Первый assign новый столбец и добавление к index по set_index
  2. swaplevel уровней в MultiIndex
  3. Последний append до первого DataFrame
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...