我有一个包含两列的数据框:
state total_sales
AL 16714
AR 6498
AZ 107296
CA 33717
现在我想根据 total_sales 中值的递增顺序将 state 列中的字符串映射到从 1 到 N 的 int(其中 N 是行数,此处为 4 )。结果应存储在另一列(例如标签)中。也就是说,想要这样的结果:
state total_sales label
AL 16714 3
AR 6498 4
AZ 107296 1
CA 33717 2
请建议矢量化实现。
最佳答案
您可以使用 rank
强制转换为 int
:
df['label'] = df['total_sales'].rank(method='dense', ascending=False).astype(int)
print (df)
state total_sales label
0 AL 16714 3
1 AR 6498 4
2 AZ 107296 1
3 CA 33717 2
关于python - Pandas 根据列中的值将字符串映射到 int,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42330624/