微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何比较一列的行值并更新另一列?

如何解决如何比较一列的行值并更新另一列?

我有一个数据框列,如下所示:

项目
苹果
苹果
苹果
芒果
芒果
樱桃

我正在尝试使用它生成一个新列(结果)。我比较行,如果前一行值与当前行值相同,则结果列中的数字保持不变,否则它会增加

项目 结果
苹果 1
苹果 1
苹果 1
芒果 2
芒果 2
樱桃 3

我可以通过将 item 列转换为列表来实现这一点,但想知道是否有更快的方法来做到这一点。

解决方法

使用 batch_transformer = Transformer( model_name=create_step.properties.ModelName,instance_type=deploy_instance_type.default_value,instance_count=deploy_instance_count.default_value,output_path=f"{raw_input_data_s3_uri}output/",strategy='MultiRecord',env=batch_env,assemble_with='Line',accept='text/csv',max_concurrent_transforms=1,max_payload=1,# This is in Megabytes (not number of records) ) ,比较列,然后做布尔变量的累加:

.shift()

打印:

df["result"] = (df["items"] != df["items"].shift(1)).cumsum()
print(df)

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。