【发布时间】:2021-09-10 10:40:11
【问题描述】:
你能帮我理解以下内容吗?
df1 是一个按日期索引的数据框。
df2 是另一个同样按日期索引的数据框,但 df1 和 df2 只有一个共同的日期,2018-12-31。
请参阅以下输出:
df1 = pd.DataFrame({'A':[1,2,3]}, index = pd.to_datetime(["2018-12-31","2019-12-31","2020-12-31"]))
df2 = pd.DataFrame({'XX':[700,800]}, index = pd.to_datetime(["2016-12-31","2018-12-31"]))
df1['BB'] = df2['XX']
A BB
2018-12-31 1 800.0
2019-12-31 2 NaN
2020-12-31 3 NaN
我意识到这是可行的,即使 df1['BB'] = df2['XX'] 的左侧和右侧的行数不同。
这是更复杂表达式的缩写吗?由于结果保留了 df1 中的所有行,但没有扩展索引以包含 df2 中的行。这个操作像“left merge”(“左连接”)吗?它是否会包含 df1's 和 df2's 索引的联合,并适当地填充 NaN?
我使用的是 pandas 1.2.5 版
【问题讨论】:
-
查看_reindex_for_setitem 发生这种情况的位置。
-
感谢@HenryEcker 澄清了一切!