我有数据集df。我想将每个名称的最后一个阶段添加为新列。
Name Stage stage_number
a Open 1
a Paid 2
a Transit 3
a Wait 4
a Complete 5
b Open 1
b Paid 2
b Transit 3
b Wait 4
b Canceled 5
预期产量:
Name Stage stage_number Last_Stage
a Open 1 Complete
a Paid 2 Complete
a Transit 3 Complete
a Wait 4 Complete
a Complete 5 Complete
b Open 1 Cancelled
b Paid 2 Cancelled
b Transit 3 Cancelled
b Wait 4 Cancelled
b Canceled 5 Cancelled
我尝试了以下代码,但出现错误,
def stage(df):
for x in df['Name']:
return df['Stage'].iloc[-1]
df['last_stage'] = df.apply(stage, axis = 1)
df
我的错误
AttributeError: 'str' object has no attribute 'iloc'
这对您有用吗?
df["last_stage"] = df.groupby("Name")["Stage"].transform("last")
print(df)
Name Stage stage_number last_stage
0 a Open 1 Complete
1 a Paid 2 Complete
2 a Transit 3 Complete
3 a Wait 4 Complete
4 a Complete 5 Complete
5 b Open 1 Canceled
6 b Paid 2 Canceled
7 b Transit 3 Canceled
8 b Wait 4 Canceled
9 b Canceled 5 Canceled
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句