Панды: низкий уровень конкатенации DataFrames вдоль оси = 1 - PullRequest
0 голосов
/ 25 января 2019

Проблема:

  • один имеет 2 кадра данных
  • один знает, что оба имеют идентичные индексы (MultiIndex)
  • (на всякий случай, если это помогает) обаСортировка индексов
  • в обоих DataFrames есть столбцы, которые не пересекаются

Как можно очень эффективно объединить 2 DataFrames, просто сложив их блоки памяти вместе, то есть эквивалент

pd.concat([df1, df2], axis=1, sort=False)

но как-то заставлять полностью игнорировать значения индекса обоих DataFrames, чтобы сделать это очень быстро?Я хочу, чтобы он был как можно ближе к операции копирования в память (без слияний).

import pandas as pd
df1 = pd.DataFrame(data={'i1':['a','a','b','b'], 
                         'i2':[0,1,0,1], 
                         'x':[1.,2.,3.,4.]})
df1.set_index(['i1','i2'], inplace=True)
df1.sort_index(inplace=True)

df2 = pd.DataFrame(data={'y':[5,6,7,8]}, index=df1.index)

pd.concat([df1, df2], axis=1, sort=False)
         x  y
i1 i2        
a  0   1.0  5
   1   2.0  6
b  0   3.0  7
   1   4.0  8

1 Ответ

0 голосов
/ 25 января 2019
for col in df2:
    df1[col] = df2[col].values
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...