在 pandas 数据框中连接两列

问题描述 投票:0回答:1

如何在数据框中连接两列,以便数据按照它们在列中的顺序排列,并删除不必要的字符,以便只保留数字字符。

例如我有数据框:

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']})

数据框

我需要得到以下结果:

结果

python pandas dataframe
1个回答
0
投票

一种选择是在加入之前删除两列中的所有非数字字符来创建新 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
© www.soinside.com 2019 - 2024. All rights reserved.