gpt4 book ai didi

python - 用单元格位置替换 bool 数据框中的所有 True

转载 作者:行者123 更新时间:2023-12-04 08:31:22 24 4
gpt4 key购买 nike

我有一个 bool 数据框,想用单元格的位置(作为元组)替换 True 单元格。例子:

import pandas as pd

df = pd.DataFrame({'A': [True, False, False],
'B': [False, True, True]})
enter image description here
我尝试了 df.mask(df, df.index) 的修改版本来自 here (例如,尝试 iloc )但它不起作用。

最佳答案

让我们试试stack将数据框 reshape 为系列,然后使用 bool 索引与 loc填充使用 np.argwhere 获得的索引, 最后使用 unstack reshape 回数据框:

m = df.stack()
m.loc[m] = pd.Series(map(tuple, np.argwhere(df.to_numpy())), index=m[m].index)
out = m.unstack()
或者你也可以试试 np.argwhere获取索引并使用 iat 进行索引设置 True 中的值具有相应索引的单元格:
out = df.astype(object)
for r, c in np.argwhere(df.to_numpy()):
out.iat[r, c] = (r, c)
结果:
print(out)

A B
0 (0, 0) False
1 False (1, 1)
2 False (2, 1)

关于python - 用单元格位置替换 bool 数据框中的所有 True,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65008202/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com