按分隔符 Python Dataframe 划分单列到多列

Divide Single to Multiple Columns by Delimiter Python Dataframe

我有一个名为 "dates" 的数据框,形状为 4380,1,看起来像这样 -

                   date
0    2017-01-01 00:00:00
1    2017-01-01 06:00:00
2    2017-01-01 12:00:00
3    2017-01-01 18:00:00
4    2017-01-02 00:00:00
             ...
4375 2019-12-30 18:00:00
4376 2019-12-31 00:00:00
4377 2019-12-31 06:00:00
4378 2019-12-31 12:00:00
4379 2019-12-31 18:00:00 

但我需要用分隔符“-”或破折号分隔单列日期,以便我可以使用它来按月分组,例如 01、02、...12。所以,我对新数据框的最终结果应该是形状 4380,4 并且看起来像:

     Year Month Day HHMMSS
0    2017 01 01 00:00:00
1    2017 01 01 06:00:00
       ...
4379 2019 12 31 18:00:00

我找不到如何根据分隔符执行此 python 从单列到多列的转换。非常感谢!

使用Series.dt.strftime and Series.str.split:

new_df = df['date'].dt.strftime('%Y-%m-%d-%H:%M:%S').str.split('-',expand=True)
new_df.columns = ['Year','Month','Day', 'HHMMSS']
print(new_df)
      Year Month Day    HHMMSS
0     2017    01  01  00:00:00
1     2017    01  01  06:00:00
2     2017    01  01  12:00:00
3     2017    01  01  18:00:00
4     2017    01  02  00:00:00
4375  2019    12  30  18:00:00
4376  2019    12  31  00:00:00
4377  2019    12  31  06:00:00
4378  2019    12  31  12:00:00
4379  2019    12  31  18:00:00