将字符串替换为根据数据帧中另一列的最大值计算出的值

三星8

我有一个ID列为dtype Object(包含INT和STR)的数据框,因此我试图用np.where下一个最高编号依次替换它们中的每一个。但是由于某些原因,在下面的示例中,它只是替换2个字符串之一,我不知道为什么?

df = pd.DataFrame({'IDstr':['480610_ABC_087', '78910_ABC_087','4806105017087','414149'],
                       'IDint':[ 0, 0, 4806105017087, 414149]})
print (df)
unique_str_IDs = df['IDstr'][df['IDstr'].str.contains("ABC", na=False)].unique()
for i in range(len(unique_str_IDs)):
    df['SKUintTEST']=np.where(df['IDstr'] == unique_str_IDs[i].strip(), 
            df['SKUint_y'].max()+i+1, df['SKUint_y'])

有人知道吗?

我想要一片T骨牛排

您可以使用map以递增方式为每个唯一ID创建的字典,然后fillna对未映射的行使用原始值:

df = pd.DataFrame({'IDstr':['480610_ABC_087', '78910_ABC_087','4806105017087','414149'],
                    'IDint':[ 0, 0, 4806105017087, 414149], 
                    'SKUint_y': range(10,14)})

unique_str_IDs = df.loc[df['IDstr'].str.contains("ABC", na=False), 'IDstr'].unique()

df['SKUintTEST'] = df['IDstr'].map({idx:i for i, idx in enumerate(unique_str_IDs, df.SKUint_y.max()+1)})\
                              .fillna(df.SKUint_y)

print (df)
            IDstr          IDint  SKUint_y  SKUintTEST
0  480610_ABC_087              0        10        14.0
1   78910_ABC_087              0        11        15.0
2   4806105017087  4806105017087        12        12.0
3          414149         414149        13        13.0

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

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

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

根据另一列中的值,将一列中的NaN替换为字符串

来自分类Dev

根据一列中唯一值的数量计算出的新变量

来自分类Dev

查找一列的最大值(按组),然后将值插入R中的另一数据帧

来自分类Dev

根据条件将一列中的值替换为另一列中的值

来自分类Dev

根据另一列中的值,用字符串替换一列中的NaN

来自分类Dev

R:根据另一列中的值从一列中的拆分字符串中检索数据

来自分类Dev

如何计算一个数据帧中一列的连续字符串值与另一列的列值分组?

来自分类Dev

如何用另一列中的字符串替换一列中的值?

来自分类Dev

如何将一列中的所有字符串值替换为另一个值?

来自分类Dev

根据另一列确定一列中的最大值

来自分类Dev

熊猫中的数据清理:如果特定字符串包含在另一列中,则将其替换为空值

来自分类Dev

根据pandas数据框中另一列的条件将int64值替换为“None”

来自分类Dev

使用r根据另一列中的值编辑字符串值

来自分类Dev

OpenRefine-替换一列中的字符串值而不基于另一列中的值

来自分类Dev

根据 R 中另一列中的值替换一列中第二次出现的字符串

来自分类Dev

将数据框分组到一列,并从一列中获取最大值,并从另一列中获取其对应的值

来自分类Dev

根据另一列中的初始字符串添加列值

来自分类Dev

使用R根据字符串是否在另一列中来更改列的值

来自分类Dev

根据另一列中的行子集从多个列中获取最大值

来自分类Dev

R编程:根据另一列中的值从拆分字符串中选择元素

来自分类Dev

根据数组的另一列在一列中聚合最小值最大值-Python

来自分类Dev

如何在同一SQL查询中将计算出的列值用于另一列

来自分类Dev

DAX。根据另一列的最大值获取一列的值

来自分类Dev

根据Pandas df中另一列中的最大值删除重复行

来自分类Dev

r中数据帧不同行的每一列的最大值

来自分类Dev

Python:Pandas:如何根据Groupby在另一列中查找最大值

来自分类Dev

在一个表中显示2列,在第3列中显示最大计数,在另一表中显示计算出的值总和

来自分类Dev

计算PostgreSQL中另一列中具有公共值的列值的最大值

来自分类Dev

从一列中找到最大值,然后根据该最大值填充另一列

Related 相关文章

  1. 1

    根据另一列中的值,将一列中的NaN替换为字符串

  2. 2

    根据一列中唯一值的数量计算出的新变量

  3. 3

    查找一列的最大值(按组),然后将值插入R中的另一数据帧

  4. 4

    根据条件将一列中的值替换为另一列中的值

  5. 5

    根据另一列中的值,用字符串替换一列中的NaN

  6. 6

    R:根据另一列中的值从一列中的拆分字符串中检索数据

  7. 7

    如何计算一个数据帧中一列的连续字符串值与另一列的列值分组?

  8. 8

    如何用另一列中的字符串替换一列中的值?

  9. 9

    如何将一列中的所有字符串值替换为另一个值?

  10. 10

    根据另一列确定一列中的最大值

  11. 11

    熊猫中的数据清理:如果特定字符串包含在另一列中,则将其替换为空值

  12. 12

    根据pandas数据框中另一列的条件将int64值替换为“None”

  13. 13

    使用r根据另一列中的值编辑字符串值

  14. 14

    OpenRefine-替换一列中的字符串值而不基于另一列中的值

  15. 15

    根据 R 中另一列中的值替换一列中第二次出现的字符串

  16. 16

    将数据框分组到一列,并从一列中获取最大值,并从另一列中获取其对应的值

  17. 17

    根据另一列中的初始字符串添加列值

  18. 18

    使用R根据字符串是否在另一列中来更改列的值

  19. 19

    根据另一列中的行子集从多个列中获取最大值

  20. 20

    R编程:根据另一列中的值从拆分字符串中选择元素

  21. 21

    根据数组的另一列在一列中聚合最小值最大值-Python

  22. 22

    如何在同一SQL查询中将计算出的列值用于另一列

  23. 23

    DAX。根据另一列的最大值获取一列的值

  24. 24

    根据Pandas df中另一列中的最大值删除重复行

  25. 25

    r中数据帧不同行的每一列的最大值

  26. 26

    Python:Pandas:如何根据Groupby在另一列中查找最大值

  27. 27

    在一个表中显示2列,在第3列中显示最大计数,在另一表中显示计算出的值总和

  28. 28

    计算PostgreSQL中另一列中具有公共值的列值的最大值

  29. 29

    从一列中找到最大值,然后根据该最大值填充另一列

热门标签

归档