如何在数据框中连接两列,以便数据按照它们在列中的顺序排列,并删除不必要的字符,以便只保留数字字符。
例如我有数据框:
df = pd.DataFrame(data = {
'id_part1': ['1221002', 'Johny Cash', '2-12-0032', 2112],
'id_part2': ['', '345000223', '', 4322],
'created_date': ['2019-01-01', '15/02/2016', '2013-05-07', '2020-08-29']})
我需要得到以下结果:
一种选择是在加入之前删除两列中的所有非数字字符来创建新 ID。
df['correct_id'] = df[['id_part1', 'id_part2']].astype(str).apply(lambda x: int(''.join(x.str.replace(r'\D', '', regex=True))), axis=1)
print(df[['correct_id', 'created_date']])
correct_id created_date
0 1221002 2019-01-01
1 345000223 15/02/2016
2 2120032 2013-05-07
3 21124322 2020-08-29
还要考虑设置日期列的格式
df['created_date'] = pd.to_datetime(df['created_date'], format='mixed')
print(df[['correct_id', 'created_date']])
correct_id created_date
0 1221002 2019-01-01
1 345000223 2016-02-15
2 2120032 2013-05-07
3 21124322 2020-08-29