0
(条件に基づく):が、私は2列持っている私のデータフレームで
- 国の指標(例えばSK)
- ID_NUMBERを(通常は8桁、例:98341852)を
私はそれらを連結すると、それは簡単です:
sk_df['id'] = sk_df['country index'].str.cat(sk_df['id_number'].values.astype(str))
しかし、行の一部で列id_number
の桁数は8未満です。この場合、国インデックスとid_number
の間にセパレータとしてゼロを追加したいとします(たとえば、長さがid_number
の場合は6、変数間に8-6 = 2の桁を追加する場合はSK00813841
)。 1ゼロなどを追加するよりも、id_number
長は、7の場合)
私はこの試みた:
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)
をしかし、それは動作しません。 どうすればいいですか?