有两个数据帧 df1 和 df2:
import pandas as pd
import numpy as np
import datetime
A = list(range(3,9))
B = [datetime.date(2019,1,1), datetime.date(2019,1,3), datetime.date(2019,1,2), datetime.date(2019,1,8), datetime.date(2017,6,2), datetime.date(2011,5,6)]
C = list('abcdef')
D = list('LMNOPQ')
E = list(range(5,11))
df1 = pd.DataFrame({'A': A, 'B': B, 'C': C, 'D': D, 'E': E})
a = list(range(3,7))
b = [datetime.date(2010,1,1), datetime.date(2019,1,3), datetime.date(2019,1,2), datetime.date(2010,2,10)]
c = list('xymb')
d = list('GZYP')
df2 = pd.DataFrame({'A': a, 'B': b, 'C': c, 'D': d})
行索引 1 和 2 具有相同的列“A”和“B”。
使用 df2 列“C”和“D”的数据更新 df1 的最佳方法是什么?
df3 = df1.set_index(['A', 'B']).update(df2.set_index(['A', 'B']))
...不起作用
预期输出是:
A B C D E
0 3 2019-01-01 a L 5
1 4 2019-01-03 y Z 6
2 5 2019-01-02 m Y 7
3 6 2019-01-08 d O 8
4 7 2017-06-02 e P 9
5 8 2011-05-06 f Q 10