Я пытаюсь создать новый столбец в Pandas DataFrame, извлекая значение из другого DataFrame. Для каждого индекса следует использовать значение столбца, которое соответствует существующему значению DataFrames. Вот решение, которое работает, но я ищу лучший способ сделать это, используя Pandas.
import pandas as pd
dates = pd.date_range('2020-01-01', '2020-01-03', freq='d')
A = pd.DataFrame({
'i': [1,2,3],
}, index=dates)
B = pd.DataFrame({
1: [11, 12, 13],
2: [21, 22, 23],
3: [31, 32, 33],
}, index=dates)
# replace this with a more efficient method, avoiding for-loop and creating C
r = [B.loc[k, v] for k, v in A.i.items()]
C = pd.DataFrame({'B': r}, index=dates)
pd.merge(A, C, left_index=True, right_index=True)
ожидаемый результат:
i B
2020-01-01 1 11
2020-01-02 2 22
2020-01-03 3 33