四位数的字符串号到两位数的字符串

时间:2019-01-08 13:27:39

标签: python string pandas dataframe slice

我想分割一个字符串(它是一个四位数的数字),但是如果字符串以0开头,那么我只会从字符串中得到第二个字母

代码:

 for i in range(0,b):
     data2['CLIENTBANKTEAORMANUAL_STR2'][i]=data2['CLIENTBANKTEAORMANUAL_STR'][i][0:2]   

和结果:

CLIENTBANKTEAORMANUAL_STR   CLIENTBANKTEAORMANUAL_STR2
    1920                         19
    0150                          1

我该如何解决这个问题

2 个答案:

答案 0 :(得分:0)

尝试使用int()

for i in range(0,b):
    data2['CLIENTBANKTEAORMANUAL_STR2'][i]=int(data2['CLIENTBANKTEAORMANUAL_STR'][i][0:2])

答案 1 :(得分:0)

str一起使用索引编制,然后从lstrip的左侧删除0

df['new'] = df['CLIENTBANKTEAORMANUAL_STR'].str[:2].str.lstrip('0')
#better performance if larger data and no NaNs
#df['new_str'] = [x[:2].lstrip('0') for x in df['CLIENTBANKTEAORMANUAL_STR']]

如果需要整数,但双00返回0只能转换而不是剥离:

df['new'] = df['CLIENTBANKTEAORMANUAL_STR'].str[:2].astype(int)

数据:

df['new_str'] = df['CLIENTBANKTEAORMANUAL_STR'].str[:2].str.lstrip('0')
df['new_int'] = df['CLIENTBANKTEAORMANUAL_STR'].str[:2].astype(int)
print (df)
  CLIENTBANKTEAORMANUAL_STR CLIENTBANKTEAORMANUAL_STR2 new_str  new_int
0                      0032                         34                0
1                      1920                         19      19       19
2                      0150                          1       1        1