#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