为基于字母表更改的每一行创建文本标签

时间:2017-12-12 19:33:48

标签: python string pandas

我不太确定这是否可行,但我会试一试。

我有一个遵循以下格式的数字列表:

Number  
008662  
007830  
015549  
008364  
001359  

我想要的是这些号码有一些文字标签。例如:

Number  Label
008662  sopa
007830  sopb
015549  sopc
008364  sopd
001359  sope

棘手的部分是我的数据帧有632行所以我需要能够有一些标签说aa, ab, bc

1 个答案:

答案 0 :(得分:1)

使用string.ascii_letters

import string

df['Label']='sop'+pd.Series(list(string.ascii_lowercase)[:len(df)])
df
Out[1206]: 
   Number Label
0    8662  sopa
1    7830  sopb
2   15549  sopc
3    8364  sopd
4    1359  sope

对于您的情况,您需要使用product

创建列表
from itertools import product
DF=pd.DataFrame(list(product(list(string.ascii_lowercase),list(string.ascii_lowercase))), columns=['l1', 'l2']).sum(1)

DF.head()
Out[1215]: 
0    aa
1    ab
2    ac
3    ad
4    ae
dtype: object

然后你会得到

df['Label']='sop'+DF[:len(df)]
df
Out[1218]: 
   Number  Label
0    8662  sopaa
1    7830  sopab
2   15549  sopac
3    8364  sopad
4    1359  sopae