用函数结果替换值

被保险人

我有以下数据框表:

df = pd.DataFrame({'A': [0, 1, 0],
                   'B': [1, 1, 1]},
                  index=['2020-01-01', '2020-02-01', '2020-03-01'])

我正在尝试实现将出现的每个值都替换为一个递增的数字。我正在寻找类似的东西:

df.replace(1, value=3)

效果很好,但我需要增加数字(而不是3)(因为我想将其用作ID)

number += 1

如果我将它们结合在一起,那么它将不起作用(或者至少我无法找到正确的语法),我想获得以下结果:

df = pd.DataFrame({'A': [0, 2, 0],
                   'B': [1, 3, 4]},
                  index=['2020-01-01', '2020-02-01', '2020-03-01'])

注意:由于表具有2600列和5000行,因此我不能使用任何依赖于列或行名规范的命令。

黄Huang

df.values可以在副本上进行按元素分配

更具体地说,range从开始1到1的个数(包括1)(包括在内)被分配到1值数组元素的位置然后将分配的数组放回原始数据帧中。

(数据为给定)

1.行优先排序(OP想要的)

arr = df.values
mask = (arr > 0)
arr[mask] = range(1, mask.sum() + 1)
for i, col in enumerate(df.columns):
    df[col] = arr[:, i]

# Result
print(df)
            A  B
2020-01-01  0  1
2020-02-01  2  3
2020-03-01  0  4

2.列优先排序(另一种可能性)

arr_tr = df.values.transpose()
mask_tr = (arr_tr > 0)
arr_tr[mask_tr] = range(1, mask_tr.sum() + 1)
for i, col in enumerate(df.columns):
    df[col] = arr_tr[i, :]

# Result
print(df)
            A  B
2020-01-01  0  2
2020-02-01  1  3
2020-03-01  0  4

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

用函数结果替换值

来自分类Dev

重击:用卷曲结果替换数组值

来自分类Dev

用循环结果熊猫替换列值

来自分类Dev

在列上应用函数,而结果不会根据函数的结果替换列值

来自分类Dev

用返回多个值的函数的向量化调用替换for循环

来自分类Dev

Raster::focal 函数用 NA 值替换边缘单元

来自分类Dev

用函数结果更改多维php数组的值

来自分类Dev

laravel json结果用“ \ /”替换“ /”

来自分类Dev

用 1 替换零结果

来自分类Dev

用.loc替换值

来自分类Dev

python是否足够聪明,可以用恒定的结果替换函数调用?

来自分类Dev

如何使用我在数据框中的值上创建的函数并用函数的结果替换这些值?

来自分类Dev

为什么str_replace函数用文件中的错误值替换该值?

来自分类Dev

用数组公式替换IF(AND))函数

来自分类Dev

用rsync替换cp函数

来自分类Dev

用数组替换函数字

来自分类Dev

Python:用函数替换for循环

来自分类Dev

用Powershell替换列值

来自分类Dev

Excel用值替换公式

来自分类Dev

用sed替换xml值

来自分类Dev

用零值替换-inf

来自分类Dev

用均值替换缺失值

来自分类Dev

Stata用缺失值替换“”

来自分类Dev

用均值替换缺失值

来自分类Dev

用值替换空列表

来自分类Dev

用查找表替换值

来自分类Dev

用值替换文本

来自分类Dev

用sed替换特定值

来自分类Dev

用宏函数替换C中的函数