首页 > 解决方案 > 如何根据索引将某个值分配给熊猫数据框中的新列

问题描述

假设我有两个 pandas 数据框,一个实际上更像一个系列

import pandas as pd
import numpy as np
A = pd.DataFrame(index=[0, 1, 2], data=[[1, 2, 3], [4, 5, 6] ,[7,8,9]],columns=["I", "L","P"])
B = pd.DataFrame(index=[1, 3, 4], data=[[10], [40] ,[70]])

我想向 A 添加一个名为“B”的新列,其值取决于索引。这意味着如果索引元素在 A 和 B 上共享,则应添加 B 的该行(对应于该索引)的值。否则为 0。结果应如下所示

A = pd.DataFrame(index=[0, 1, 2], data=[[1, 2, 3,0], [4, 5, 6,10] ,[7,8,9,0]],columns=["I", "L","P","B"])
A

如何在 Python / pandas 中有效地实现这一点?

标签: pythonpandas

解决方案


reindex与分配

A['B'] = B[0].reindex(A.index,fill_value=0)
A
Out[55]: 
   I  L  P   B
0  1  2  3   0
1  4  5  6  10
2  7  8  9   0

推荐阅读