gpt4 book ai didi

Python:用if语句替换Dataframe中的单元格值

转载 作者:行者123 更新时间:2023-12-01 05:15:56 25 4
gpt4 key购买 nike

我有一个矩阵,如下所示:

    com 0 1 2 3 4 5
AAA 0 5 0 4 2 1 4
ABC 0 9 8 9 1 0 3
ADE 1 4 3 5 1 0 1
BCD 1 6 7 8 3 4 1
BCF 2 3 4 2 1 3 0 ...

其中 AAA, ABC ... 是数据帧索引。数据框列为 com 0 1 3 4 5 6

com 的行值等于“number”列时,我想将数据框中的单元格值设置为 0。例如,上面的矩阵将如下所示:

    com 0 1 2 3 4 5
AAA 0 0 0 4 2 1 4
ABC 0 0 8 9 1 0 3
ADE 1 4 0 5 1 0 1
BCD 1 6 0 8 3 4 1
BCF 2 3 4 0 1 3 0 ...

我尝试迭代行并使用 .loc.ix 但没有成功。

最佳答案

只需要一些numpy技巧

In [22]:

print df
0 1 2 3 4 5
0 5 0 4 2 1 4
0 9 8 9 1 0 3
1 4 3 5 1 0 1
1 6 7 8 3 4 1
2 3 4 2 1 3 0

[5 rows x 6 columns]
In [23]:
#making a masking matrix, 0 where column and index values equal, 1 elsewhere, kind of the vectorized way of doing if TURE 0, else 1
print df*np.where(df.columns.values==df.index.values[..., np.newaxis], 0,1)
0 1 2 3 4 5
0 0 0 4 2 1 4
0 0 8 9 1 0 3
1 4 0 5 1 0 1
1 6 0 8 3 4 1
2 3 4 0 1 3 0

[5 rows x 6 columns]

关于Python:用if语句替换Dataframe中的单元格值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23232463/

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