Вы можете просто добавить новый столбец, используя b['w'] = a['w']
. Это примечание на самом деле слияние, но копия из a в b.
Полный код:
from datetime import date
import numpy as np
import pandas as pd
np.random.seed(200)
ids = ["A", "B"]
dates = [date(2020, 1, 31), date(2020, 2, 28)]
a = {"id": ids * len(dates), "w": [.5, .5] * len(dates)}
b = {"id": ids * len(dates), "x": np.random.random(len(ids) * len(dates))}
a = pd.DataFrame(a, index=dates * len(dates))
b = pd.DataFrame(b, index=dates * len(dates))
b['w'] = a['w']
print(b)
РЕДАКТИРОВАТЬ: Другой способ получить желаемый результат (ну, я ' m не так уверен из-за повторяющегося столбца 'id'). Пожалуйста, дайте мне знать структуру идентификатора двух фреймов данных:
import pandas as pd
a = pandas.DataFrame([
['A', 0.5],
['B', 1],
['C', 1.5],
['D', 2.]],
columns=['id', 'w'],
index=['2020-01-01', '2020-01-02', '2020-01-03', '2020-01-04'])
print(a)
b = pandas.DataFrame([
['A', 0.5],
['B', 1],
['C', 1.5],
['D', 2.]],
columns=['id', 'x'],
index=['2020-01-02', '2020-01-03', '2020-01-04', '2020-01-05'])
print(b)
c = pandas.concat([a, b], axis=1)
print(c)
вывод:
id w
2020-01-01 A 0.5
2020-01-02 B 1.0
2020-01-03 C 1.5
2020-01-04 D 2.0
id x
2020-01-02 A 0.5
2020-01-03 B 1.0
2020-01-04 C 1.5
2020-01-05 D 2.0
id w id x
2020-01-01 A 0.5 NaN NaN
2020-01-02 B 1.0 A 0.5
2020-01-03 C 1.5 B 1.0
2020-01-04 D 2.0 C 1.5
2020-01-05 NaN NaN D 2.0