在我的dataframe中有2列:
我想把它们连接起来,这很简单:
sk_df['id'] = sk_df['country index'].str.cat(sk_df['id_number'].values.astype(str))
但是列id_number
中的一些行的数字小于8。在本例中,我希望在Country索引和id_number
之间添加零作为分隔符(例如,如果id_number
的长度为6,则希望在变量之间添加8-6 =2个零:SK00813841
)。如果id_number
长度为7,请添加1 0等)
我试过这个:
def indexing(row):
if row['id_number'].astype(str).str.len() == 8:
return row['country index'].str.cat(row['id_number'].values.astype(str))
else:
sep_mult = 8 - row['id_number'].astype(str).str.len()
return row['country index'].str.cat(row['id_number'].values.astype(str),sep = '0'*sep_mult)
sk_df['id'] = sk_df.apply(lambda row: indexing(row),axis = 1)
但不起作用。我该怎么做呢?
发布于 2017-07-05 08:48:41
使用.zfill()
sk_df['id'] = sk_df['country index'] + sk_df['id_number'].astype(str).str.zfill(8)
https://stackoverflow.com/questions/44920796
复制相似问题