Сохранение индекса при объединении двух фреймов данных

#python #pandas #dataframe #concat

#python #pandas #фрейм данных #конкатенация

Вопрос:

Проблема При объединении двух фреймов данных я теряю имена строк. Я хочу избежать этого. Обратите внимание, что некоторые строки в фреймах данных имеют разные имена.

Я безуспешно пробовал разные версии «merge» от Pandas.

Пример кода:

 df1 = pd.DataFrame()
series1 = pd.Series([1,2])
series1 .rename(index={0:'zero',1:'one'}, inplace=True)
df1['someValue'] = series1
df1['time'] = "day1"
df1

      someValue  time
zero          1  day1
one           2  day1

df2 = pd.DataFrame()
series2 = pd.Series([3,4,5])
series2 .rename(index={0:'zero',1:'one', 2:'two'}, inplace=True)
df2['someValue'] = series2
df2['time'] = "day2"
df2

      someValue  time
zero          3  day2
one           4  day2
two           5  day2

df1.merge(df2,  how='outer')
   someValue  time
0          1  day1
1          2  day1
2          3  day2
3          4  day2
4          5  day2
  

Я хочу

    someValue  time
zero       1  day1
one        2  day1
zero       3  day2
one        4  day2
two        5  day2
  

Также обратите внимание, что я хотел бы, чтобы это работало, когда в первом df есть строки, которых нет во втором df, а также наоборот.

Комментарии:

1. Вы ищете concat ? pd.concat([df1, df2])

2. @coldspeed : Именно то, о чем я заботился! Спасибо! Если вы напишете ответ, я его приму!

3. @Serge Ballesta Отметил! Спасибо за инструкции!

Ответ №1:

Решение заключается в использовании concat :

 pd.concat([df1, df2])

      someValue  time
zero          1  day1
one           2  day1
zero          3  day2
one           4  day2
two           5  day2