我有一个Dataframe
+----+----------+
|id | device |
+----+----------+
| 123| phone |
| 124| phone |
| 555| phone |
| 898| tablet |
| 999| tablet |
|1111| tv |
+----+----------+
我希望得到一个新的列,它的devices值与id相关联,比如
+----+----------+--------------+
|id | device | device_id |
+----+----------+--------------+
| 123| phone | phone_00001 |
| 124| phone | phone_00002 |
| 555| phone | phone_00003 |
| 898| tablet | tablet_00001 |
| 999| tablet | tablet_00002 |
|1111| tv | tv_00001 |
+----+----------+--------------+
在r里看起来像
df %>% group_by(device) %>% mutate(device_id = paste0(device, '_', sprintf("%04d", row_number())
我在Pypark找同样的。
1条答案
按热度按时间ohtdti5x1#
类似于r中的方法,根据设备分区分配行号,并使用
format_string
要获得所需的输出格式: