我有一个73k行的数据帧,下面是示例数据:
Index Customers' Name States
0 Alpha Oregon
1 Alpha Oregon
2 Bravo Utah
3 Bravo Utah
4 Charlie Alabama
5 Charlie Alabama
6 Alpha Oregon
7 Alpha Oregon
8 Bravo Utah
数据有一个唯一的值,但我不允许删除或删除它,因为它是我的研究需要或强制的。另一方面,我想用一些特定的伪代码来改变客户的名字,这样结果就会像这样:
Index Customers' Name States
0 z1 Oregon
1 z1 Oregon
2 z2 Utah
3 z2 Utah
4 z3 Alabama
5 z3 Alabama
6 z1 Oregon
7 z1 Oregon
8 z2 Utah
我仍然是一个初学者,学习Python大约3个月。那么,我如何才能以一种"笨重"的方式改变它,记住我有73k行这样的东西?我认为它必须使用循环('For')来执行。我已经试过了,但我不能很好地结束。请帮我完成/解决这个问题。
您可以使用.groupby()
与.ngroup()
:
df["Customers' Name"] = "z" + (
df.groupby("Customers' Name").ngroup() + 1
).astype("str")
print(df)
打印:
Customers' Name States
0 z1 Oregon
1 z1 Oregon
2 z2 Utah
3 z2 Utah
4 z3 Alabama
5 z3 Alabama
6 z1 Oregon
7 z1 Oregon
8 z2 Utah