Вы можете сделать следующее, используя map
:
s1 = df1['CHU']
s1.index = zip(df1['Period'], df1['Month'])
s2 = pd.Series(zip(df2['Period'], df2['Month']))
df2['CHU'] = s2.map(s1)
Отдать за df2
:
Station_Name Period Month Year CHU
0 BEAVERLODGE 1 1 1931 1.797049
1 BEAVERLODGE 1 1 1943 1.797049
2 BEAVERLODGE 1 1 1945 1.797049
3 BEAVERLODGE 1 2 1938 0.168009
4 BEAVERLODGE 1 2 1954 0.168009
5 BEAVERLODGE 1 3 1930 4.112437
6 BEAVERLODGE 1 3 1934 4.112437
7 BEAVERLODGE 1 3 1937 4.112437
8 BEAVERLODGE 1 3 1939 4.112437
9 BEAVERLODGE 1 3 1941 4.112437
10 BEAVERLODGE 1 3 1942 4.112437
Пояснение: Вы создаете серию s1
на основе df1
с (Period, Month)
paris в качестве индекса и CHU
в качестве значений. Вы также создаете ряд s2
на основе df2
с парами (Period, Month)
в качестве значений. Затем map
использует значения из s2
, чтобы «найти» желаемое значение CHU
через s1
.
Я использую как Period
, так и Month
, потому что я предполагаю, что их больше чем один Period
, который вы пытаетесь использовать для переназначения значений. Если это не так, вы можете использовать аналогичный подход без использования этого столбца.