python - 根据共享索引将一列添加到其他数据框中的所有列
问题描述
我正在尝试将 dataframe 中一列的值添加到 dataframedf2
的所有列中df
。它们共享一个(唯一的)索引,但顺序可能不同。
df = pd.DataFrame({"id":[1,2,3], "value1":[1,2,3], "value2":[4,5,6]}).set_index("id")
df2 = pd.DataFrame({"id":[3,2], "add":[4,5]}).set_index("id")
预期结果:
result = pd.DataFrame({"id":[1,2,3], "value1":[1,2+5,3+4], "value2":[4,5+5,6+4]}).set_index("id")
我可以合并并添加,但我想知道是否有更 numpy 风格的解决方案。我试过df+df2
了,结果NaN
无处不在。
解决方案
我没有 numpy 风格的答案,但这里是 pandas 风格的答案:
df = pd.DataFrame({"id":[1,2,3], "value1":[1,2,3], "value2":[4,5,6]}).set_index("id")
df2 = pd.DataFrame({"id":[3,2], "add":[4,5]}).set_index("id")
print(df.update(df + df2))
输出:
value1 value2
id
1 1 4
2 7 10
3 7 10
推荐阅读
- python - 如何在python中使用抽象数据类型?
- python - 最小化 Tensorflow 中的函数
- javascript - 如何检索作为函数的字符串中的数组?
- javascript - 正则表达式删除特定域的超链接
- python-3.x - 试图将文件写入我的工作目录:错误:TypeError:预期的 str、字节或 os.PathLike 对象,而不是列表
- python - 根据不同的列列表从 DataFrame 中选择行的有效方法
- python - Pandas:使用具有相同固定重复次数的数据框填充固定数量的新列
- python - 在 Go 中采购 `/etc/environment`
- iframe - iframe 将原点发送为空
- prolog - 定义规则时的分号