我正在尝试根据一个现有列(“ Number”)创建具有固定长度的字母数字(增量值)列。
我有一个下面的数据框:
Number Space Student
1 MG A
2 FE B
3 GD C
4 MK D
5 OK E
6 OO F
7 PP G
8 QW H
9 WE I
10 ZA J
11 ZQ K
...
100 ZU X
101 ZX Y
102 ZB Z
我需要以下输出(预期输出):
Number Space Student NUM4
1 MG A P001
2 FE B P002
3 GD C P003
4 MK D P004
5 OK E P005
6 OO F P006
7 PP G P007
8 QW H P008
9 WE I P009
10 ZA J P010
11 ZQ K P011
...
100 ZU X P100
101 ZX Y P101
102 ZB Z P102
在上面的输出中,我想基于“ Number”列生成New列(NUM4),但是新列的长度必须为4(新列中的字母保持不变)
df['NUM4'] = 'P00' + df['Number']
我不确定如何引入固定长度的列,该长度根据“ Number”列的长度而动态变化。您能帮上忙吗?
谢谢。
答案 0 :(得分:3)
将str.zfill
用作:
df['NUM4'] = 'P'+df['Number'].astype(str).str.zfill(3)
print(df)
Number Space Student NUM4
0 1 MG A P001
1 2 FE B P002
2 3 GD C P003
3 4 MK D P004
4 5 OK E P005
5 6 OO F P006
6 7 PP G P007
7 8 QW H P008
8 9 WE I P009
9 10 ZA J P010
10 11 ZQ K P011
答案 1 :(得分:0)
熊猫这样做的方法:
df['NUM4'] = df.apply(lambda x: f'P{x.Number:03}', axis=1)
答案 2 :(得分:0)