【发布时间】:2020-07-21 22:45:14
【问题描述】:
我有一个带有一些“空”(NaN)条目的数据框,例如
c = pd.DataFrame({"A":[1, 2, np.NAN, 4], "B":[11, 22, 33, np.NAN]}, index=["a", "b", "c", "d"])
A B
a 1.0 11.0
b 2.0 22.0
c NaN 33.0
d 4.0 NaN
我想使用另外两个分别包含列 A 和 B 的值的数据框来“更新”,例如
a = pd.DataFrame({"A": [3, 4, 5, 6]}, index=["c", "d", "e", "f"])
b = pd.DataFrame({"B": [44, 55, 66]}, index=["d", "e", "f"])
获取更新版本:
A B
a 1.0 11.0
b 2.0 22.0
c 3.0 33.0
d 4.0 44.0
e 5.0 55.0
f 6.0 66.0
我尝试使用 .loc
c.loc[a.index, "A"] = a 和
c.loc[a.index, "A"] = a.A
但是对于不在索引中的项目不断收到 KeyError。我还尝试了concat 的变体,但无法获得所需的输出。
是否有一个 pandas 函数可以在索引中已经存在时设置值,如果不存在则创建它们?
【问题讨论】: