3 回答

TA貢獻1827條經驗 獲得超8個贊
我會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
添加回答
舉報