3 回答
TA贡献1827条经验 获得超7个赞
我会crosstab做update
x.update(pd.crosstab(df.row,df.column).eq(1))
x
Out[44]:
Brazil Canada USA
1 False False False
2 False False False
3 True False True
4 False False False
5 False False False
6 False False True
7 False True False
TA贡献1836条经验 获得超3个赞
您可以旋转positions表格:
s = (df.assign(dummy=True).set_index(['row','column'])
['dummy'].unstack(fill_value=False)
)
x |= s
输出:
Brazil Canada USA
1 False False False
2 False False False
3 True False True
4 False False False
5 False False False
6 False False True
7 False True False
TA贡献1840条经验 获得超5个赞
searchsorted和切片分配iloc
这假定index和columnsinx已排序。
我们将使用iloc和位置元组来分配值True
i = tuple(x.index.searchsorted(df.row))
j = tuple(x.columns.searchsorted(df.column))
x.iloc[[i, j]] = True
x
Brazil Canada USA
1 False False False
2 False False False
3 True False True
4 False False False
5 False False False
6 False False True
7 False True False
添加回答
举报