gpt4 book ai didi

python - 替换 Pandas Dataframe 中的值

转载 作者:行者123 更新时间:2023-12-02 09:13:06 25 4
gpt4 key购买 nike

我有一个数据框(名为 df),如下所示:

    s01  s03  s06  s07  s08
0 1 1 1 1 1
1 1 1 1 1 1
2 0 1 1 0 1
3 0 0 1 1 0
4 0 0 0 1 1

我想用它的索引值替换所有的。

最终结果应如下所示:

    s01  s03  s06  s07  s08
0 0 0 0 0 0
1 1 1 1 1 1
2 0 2 2 0 2
3 0 0 3 3 0
4 0 0 0 4 4

这只是一个示例。真实的数据框有数千行和数千列。首要任务是拥有能够尽快修改数据的高效代码。

我想到了 3 种可能的方法来解决这个问题:

  • 使用 2 个“for”循环和一个“if”语句,直接循环 panda 对象,或将数据转换为 2D numpy 数组并循环。

  • 在 pandas 数据帧上使用某种 pandas 内置过滤功能。

  • 将数据帧转换为 2D Numpy 数组并使用某种 numpy 内置函数来修改数据。

哪种方式最省时?

有没有其他更有效但我没有想到的方法?

谢谢

最佳答案

您可以使用掩码:

df.mask(df.eq(1), df.index)

输出:

   s01  s03  s06  s07  s08
0 0 0 0 0 0
1 1 1 1 1 1
2 0 2 2 0 2
3 0 0 3 3 0
4 0 0 0 4 4

如果您的索引是数字的(如本示例所示),您还可以执行以下操作:

df.mul(df.index, axis=0)

关于python - 替换 Pandas Dataframe 中的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61464744/

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