问题描述
项目 |
---|
苹果 |
苹果 |
苹果 |
芒果 |
芒果 |
樱桃 |
我正在尝试使用它生成一个新列(结果)。我比较行,如果前一行值与当前行值相同,则结果列中的数字保持不变,否则它会增加。
项目 | 结果 |
---|---|
苹果 | 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)