如何根据行:列位置键值填充数据框值?



假设我有一个数据帧

id   0   1   2
001  0   0   0
003  0   0   0
007  0   0   0

和{id:column}的数据框,例如

id   col
001   2
007   0

如何把value放到dataframe中变成

id   0   1   2
001  0   0   1
003  0   0   0
007  1   0   0

我认为使用apply/applymap与列表理解是一种方法,但仍然不明白。

您可以crosstabupdate:

df = pd.DataFrame({'id': {0: 1, 1: 3, 2: 7}, 0: {0: 0, 1: 0, 2: 0}, 1: {0: 0, 1: 0, 2: 0}, 2: {0: 0, 1: 0, 2: 0}})
df2 = pd.DataFrame({'id': {0: 1, 1: 7}, 'col': {0: 2, 1: 0}})
df = df.set_index("id")
df.update(pd.crosstab(df2["id"], df2["col"]))
print (df.reset_index())
id    0  1    2
0   1  0.0  0  1.0
1   3  0.0  0  0.0
2   7  1.0  0  0.0

相关内容

  • 没有找到相关文章

最新更新