在我的数据框中,我有两列:
我想连接它们,这很容易:
sk_df['id'] = sk_df['country index'].str.cat(sk_df['id_number'].values.astype(str))
但是列id_number
中的某些行的位数小于8.在这种情况下,我想在国家/地区索引和id_number
之间添加零作为分隔符(例如,如果id_number
的长度1}}是6我想在变量之间添加8-6 = 2个零:SK00813841
。如果id_number
长度为7,则加1等零)
我试过了:
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)
但它不起作用。 我该怎么办?
答案 0 :(得分:1)
使用.zfill()
:
sk_df['id'] = sk_df['country index'] + sk_df['id_number'].astype(str).str.zfill(8)