Я хочу присвоить значения столбцу DataFrame pandas, используя фрагмент из другого DataFrame с индексами commom.Более или менее похоже на создание нового столбца в df1, заполняющего значения из другого столбца DataFrame (в следующем примере, df2 ['D']), которые имеют такой же индекс.
Пример: у меня есть два DataFrames, df1 и df2.
df1
A B
g
a 0.286074 0.148268
b 0.271671 0.356847
c 0.155908 0.951075
df2
C D
g
c 0.218612 0.296498
d 0.382499 0.900638
Теперь я хочу добавить новый столбец в df1 со всеми значениями из df2 ['D'], которые имеют одинаковыеиндекс (строка) в df1.Я знаю, что могу сделать что-то вроде этого:
for g in df2.index:
if g in df1.index.values.tolist():
df1.loc[g, 'D'] = df2.loc[g, 'D']
df1
A B D
g
a 0.286074 0.148268 NaN
b 0.271671 0.356847 NaN
c 0.155908 0.951075 0.296498
и работает отлично!Но я думаю, что решение настолько уродливо и совсем не использует возможности DataFrame панд.
Я пытался сделать что-то вроде следующего, но не сработало совсем:
df1.reindex(df1.index.intersection(df2.index))['D'] = df2['D']
df1
A B
g
a 0.286074 0.148268
b 0.271671 0.356847
c 0.155908 0.951075
Я пытался сделать кучу других вещей, используя loc или запросы, но ни один из них не работал.
Этот пример был создан на основе того, что мне нужно сделать с таблицами, содержащими большие объемные данные, этоВот почему я хочу оптимизировать результат.
Заранее спасибо!