pandas中如何合并DataFrame的两列
如下DataFrame, 一列日期,一列时间,现需要把日期和时间合并为一列。
1 | df = pd.DataFrame([['2023-01-05','0930',100],['2023-01-05','0935',200],['2023-01-05','0940',333]],columns=['日期','时间','数量']) |
1 | 日期 时间 数量 |
最简单的做法是直接两列按字符串拼接:
1 | df['日期时间1'] = df['日期'] + ' ' + df['时间'] |
如果要合并的列不是字符串,则需显式转化一下再合并:
1 | df['日期时间2'] = df['日期'].astype(str) + ' ' + df['时间'].astype(str) |
还可以这样:
1 | df['日期时间3'] = df[['日期','时间']].apply(lambda x: ' '.join(x), axis=1) |
或者:
1 | df['日期时间4'] = df.apply(lambda x: x['日期'] + ' ' + x['时间'], axis=1) |
如果要合并的列中有nan
,则可以使用这个:
1 | df['日期时间5'] = df['日期'].str.cat(df['时间'], sep=' ', na_rep='?') |
最后效果如下:
1 | >> df |
完毕!